List Randomizer
Shuffle any list into a random order. Paste one item per line.
How It Works
The List Randomiser shuffles any list into a uniformly random order using the Fisher–Yates algorithm seeded by the browser’s crypto.getRandomValues. Paste your list — one item per line — into the input, and click Shuffle to see a fresh random ordering. Each click produces a different permutation, and the algorithm guarantees every one of the n! possible orderings is equally likely (which is the property that off-the-shelf ‘shuffle’ implementations using Math.random and naive sorting fail to provide — a famous pitfall in the algorithm-mistakes literature). Use cases include shuffling a playlist or reading list, randomising the order of presentations or interviews to avoid order bias, generating random seating or team matchups, creating a random presentation order from a list of topics, and educational demonstrations of permutation counting. Empty lines are ignored, and the output preserves the exact text of each item — leading and trailing whitespace is left as-is, since it may be meaningful. Shuffling runs entirely in your browser, so even confidential lists (employee names, candidate identifiers) stay on your device.
Worked Example
Paste 12 team names and click Shuffle: the Fisher–Yates algorithm produces one of the 479 million possible orderings, each exactly equally likely — a provably fair tournament draw or presentation order. The scatter chart plots original versus shuffled position, so you can see there is no pattern; the history panel keeps the last three orders in case someone asks to verify an earlier draw. Need podium places instead of a full ordering? The pick-top-N field returns just the first N after shuffling — an instant unbiased selection.
Use Cases
- Randomising a playlist or reading list
- Shuffling a deck of cards or a set of flashcards
- Creating random seating arrangements or team matchups
- Generating a random schedule from a list of tasks
Frequently Asked Questions
- Is the shuffle truly random?
- Yes — the Fisher-Yates algorithm with crypto.getRandomValues produces a uniform distribution over all permutations. Every ordering is equally likely.
- Why not sort with Math.random?
- A common but broken pattern: arr.sort(() => Math.random() - 0.5) produces non-uniform results because most sort algorithms make biased comparisons. Fisher-Yates is the correct algorithm.
- How big a list can I shuffle?
- Tens of thousands of items in milliseconds. Beyond that, browser tab responsiveness is the limit.
- Are duplicates kept?
- Yes. The shuffle preserves every input item exactly; it does not deduplicate.
- Is my list sent anywhere?
- No. Shuffling happens entirely in your browser and the input is discarded when you close the tab.