List Shuffler — randomise, pick, dedupe
Paste a list (one item per line), click Shuffle, get a fairly randomised order. Optionally pick only the first N — perfect for raffles, study cards, team draws, project assignments.
Paste a list (one item per line), click Shuffle, get a fairly randomised order. Optionally pick only the first N — perfect for raffles, study cards, team draws, project assignments.
The Fisher-Yates algorithm: walk the list from the end to the start, at each position swap the current item with a randomly chosen earlier (or current) position. The result is a uniformly random permutation in O(n) time. Used together with a cryptographically secure RNG (and proper rejection sampling), the output is exactly what 'random order' means.
Common alternative implementations (sorting by a random key) produce subtly biased results because of how comparison sorts work. Fisher-Yates is the only way to get a guaranteed-unbiased shuffle. This tool uses crypto.getRandomValues for the random source — no Math.random.
Yes — Fisher-Yates with a CSPRNG is provably uniform. Every permutation of N items is equally likely. Many homemade shuffles using sort-by-random-key are not uniform; this tool uses the proven algorithm.
Shuffle reorders all items. Pick random subset takes the first N items of a fully shuffled list — equivalent to drawing N from a hat without replacement. Use 'pick' for raffles where you want N winners from M entries.
Yes, unless you tick 'Remove duplicates'. With duplicates kept, all entries are equally likely to appear at any position; with duplicates removed, each unique value gets exactly one slot. Pick the right behaviour for your use case.
Tens of thousands of items run instantly. Beyond ~100,000 the textarea starts to lag (because of rendering, not the algorithm). For huge lists, use Python's random.shuffle in a script.
No. Each click of Shuffle produces a fresh permutation. Refreshing the page clears state. The output is yours; copy it before navigating away.
Where shuffling pays off in seconds.
Paste your list of entries, set 'Pick first' to the number of winners, click Shuffle. The first N items are your winners. Screenshot for audit trail.
Splitting a class into project teams of 4? Paste student names, shuffle, group every 4 lines into a team. Faster and fairer than letting people self-organise.
When studying flashcards or spaced repetition decks, shuffling fights the order-effect (you remember 'card 3 was easy' regardless of content). Re-shuffle each session for fresh practice.
Some playlist tools' 'shuffle' is biased toward recent additions or popular tracks. Paste your list, get a true random order, then re-create the playlist in that order.
Habits for getting reliable random orders.
Random sequences sometimes look 'unrandom' — five names from one team in a row, for instance. The result is still uniform; humans see patterns where there are none. Re-shuffling is fine, but don't keep shuffling until the result 'looks random'; that's a different bias.
Public raffles benefit from showing the input list and the shuffled output side by side, with a timestamp. The screenshot is the audit; this tool doesn't store anything for you.
Tick 'Remove duplicates' before shuffling if your list might have repeats — the same person submitting twice for a giveaway, for example. The dedupe is case-sensitive and preserves first occurrence.
Use 'Pick first N' for clear raffle outcomes. Showing 100 names then announcing 'the first 5 are winners' is unambiguous; showing all 100 reshuffled and asking 'who's first?' is needlessly confusing.