Fair Randomness, No Shortcuts
You need to pick 3 volunteers from a team of 12. Or randomize the presentation order for demo day. Or select raffle winners from a list of 200 entrants. You could close your eyes and point at a screen, but that’s not exactly rigorous.
The Fisher-Yates shuffle is the mathematically correct way to randomize a list. Every possible permutation has exactly equal probability. This tool implements it with crypto.getRandomValues() — the same cryptographic randomness source used by security protocols, not the biased Math.random() that JavaScript gives you by default.
Shuffling vs. Picking
Shuffle randomizes the entire list. All items stay, just in a new order. Good for presentation schedules, quiz question randomization, and playlist shuffling.
Pick N selects a random subset. You’ve got 200 raffle entries and need 5 winners — set “Pick 5” and get exactly 5 randomly chosen names. Each person has an exactly equal chance.
Enter items one per line. Click Shuffle. Click it again for a different arrangement. The output updates instantly.
Why the Algorithm Matters
A naive shuffle (sorting by random keys) introduces subtle biases. Some permutations end up more likely than others. Fisher-Yates, invented in 1938, is mathematically proven to produce every permutation with equal probability. It’s the same algorithm used by random.shuffle() in Python and Collections.shuffle() in Java.
Pairing it with crypto.getRandomValues() instead of Math.random() eliminates the PRNG bias issue. For something like a company raffle or a contest, this means the results are defensibly fair.
Practical Uses
Sprint planning. Randomize the backlog review order so the same items don’t always get discussed first (and get all the attention).
Code review assignments. Paste your team’s names, pick 2, and those are the reviewers for the PR. Rotate fairly over time.
Quiz and flashcard apps. Shuffle question order so students can’t memorize by position.
Board game night. Type the player names, shuffle, and the output is your turn order. Argue about game rules, not about who goes first.
Content A/B testing. Randomize variant assignments for manual testing when you don’t have a proper A/B testing framework set up yet.
The Text Sorter on Toolsvu handles alphabetical and length-based sorting. The Random Number Generator generates random numbers if you need numeric values instead of list shuffling.
All shuffling runs in your browser. Your list items stay on the page.