Need to randomly shuffle arrays in your application? This guide covers everything you need to know about array shuffling via API, including algorithms, fairness guarantees, and implementation examples.
What is Array Shuffling?
Array shuffling randomly reorders elements in a list so that every possible permutation has an equal chance of occurring. A fair shuffle ensures no position is favored over another.
For an array of n elements, there are n! (n factorial) possible orderings. A 52-card deck has 52! (about 8x10^67) possible arrangements.
Shuffling Algorithms
Not all shuffle implementations are created equal:
Fisher-Yates (Knuth) Shuffle
The gold standard for fair shuffling. Guarantees uniform distribution with O(n) time complexity. Each permutation is equally likely.
Naive Shuffles
Simple approaches like sorting with random keys often produce biased results. Avoid these for applications requiring fairness.
In-Place vs. Copy
Fisher-Yates can shuffle in-place (modifying the original) or create a new shuffled array. Both are valid approaches.
Using the Shuffle Array API
TinyFn provides a simple endpoint to shuffle arrays:
POST https://api.tinyfn.io/v1/random/shuffle
Headers: X-API-Key: your-api-key
Content-Type: application/json
{
"items": ["Alice", "Bob", "Charlie", "Diana", "Eve"]
}
{
"shuffled": ["Diana", "Alice", "Eve", "Bob", "Charlie"],
"original": ["Alice", "Bob", "Charlie", "Diana", "Eve"],
"count": 5,
"algorithm": "fisher_yates"
}
Parameters
| Parameter | Type | Description |
|---|---|---|
items |
array | Array of items to shuffle |
include_original |
boolean | Include original order in response (default: true) |
Code Examples
JavaScript / Node.js
const response = await fetch('https://api.tinyfn.io/v1/random/shuffle', {
method: 'POST',
headers: {
'X-API-Key': 'your-api-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
items: ['Alice', 'Bob', 'Charlie', 'Diana', 'Eve']
})
});
const { shuffled } = await response.json();
console.log(`Order: ${shuffled.join(' -> ')}`); // Order: Diana -> Alice -> Eve -> Bob -> Charlie
Python
import requests
response = requests.post(
'https://api.tinyfn.io/v1/random/shuffle',
json={'items': ['Alice', 'Bob', 'Charlie', 'Diana', 'Eve']},
headers={'X-API-Key': 'your-api-key'}
)
shuffled = response.json()['shuffled']
print(f"Shuffled order: {shuffled}")
cURL
curl -X POST "https://api.tinyfn.io/v1/random/shuffle" \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"items": ["Alice", "Bob", "Charlie", "Diana", "Eve"]}'
Common Use Cases
- Card Games: Shuffle decks for poker, blackjack, etc.
- Quiz Apps: Randomize question and answer order
- Playlists: Shuffle music or video playlists
- Tournaments: Random bracket or matchup generation
- Presentations: Randomize order for speakers or topics
Best Practices
- Use Fisher-Yates: Ensure the API uses this algorithm for fairness
- Don't re-shuffle frequently: One shuffle is usually enough
- Preserve original if needed: Keep the original order for reference
- Handle empty arrays: Return empty array, not error
Use via MCP
Your AI agent can call this tool directly via Model Context Protocol — no HTTP code needed. Add TinyFn to Claude Desktop, Cursor, or any MCP client:
{
"mcpServers": {
"tinyfn-random": {
"url": "https://api.tinyfn.io/mcp/random/",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}
See all random tools available via MCP in our Random MCP Tools for AI Agents guide.
Try the Shuffle Array API
Get your free API key and start shuffling arrays in seconds.
Get Free API Key