Common uses
- Raffle / draw order — randomise the order tickets are pulled when there are multiple prizes.
- Team or pair assignment — paste the participant list, shuffle, then split into pairs / teams of N.
- Task or chore rotation — fairly rotate weekly chores or on-call duty.
- Quiz or interview question order — randomise question delivery so candidates can't compare easily.
- Decision making — when N options are equally appealing, let the shuffle pick the first one.
How the shuffle works
The Fisher-Yates shuffle (also called the Knuth shuffle) walks the list from the end to the start, swapping each item with a randomly-chosen earlier item (or itself). With an unbiased random source, every possible permutation comes out with equal probability.
The randomness comes from crypto.getRandomValues with rejection sampling so each j is exactly uniform over [0, i] — no modulo bias. The result is statistically indistinguishable from drawing items at random from a hat.
Number of possible orderings
| Items (N) | Orderings (N!) |
|---|---|
| 5 | 120 |
| 10 | 3,628,800 |
| 15 | 1.3 trillion |
| 20 | 2.4 × 10¹⁸ |
| 52 (a deck of cards) | 8.07 × 10⁶⁷ |
Once you exceed about 14 items, no two genuinely-random shuffles in human history have ever produced the same ordering (modulo trivial seed collisions). Each shuffle you generate is, with overwhelming probability, unique.
FAQ
What about weighting — can I make some items more likely to come first?
Not in this tool. For weighted random selection, use a different approach: assign weights, sum them, and use random × total to pick proportionally. This shuffle is unweighted by design — every item has equal probability at each position.
Are blank lines and trailing whitespace handled?
Yes — blank lines are ignored entirely, and leading/trailing whitespace on each item is stripped before shuffling.
Can I keep the same list and just regenerate?
Hit "Shuffle" again. The original list stays in the textarea; only the output reorders. Hit "Reverse" to flip the current shuffled list end-to-end.