HOW IT WORKS
Enter your list of items (one per line), specify how many you want to pick, and click the button. The tool uses the Fisher-Yates shuffle algorithm to ensure fair and unbiased random selection. Perfect for raffles, team assignments, or any decision where you need truly random picks.
COMMON USES FOR RANDOM SELECTION
Giveaways & Contests: Pick raffle winners from hundreds of entries fairly. Each participant has equal chance. Export results as proof of fairness. Influencers use this for Instagram/YouTube giveaways.
Team Assignments: Randomly split students/employees into groups for projects. Prevents bias in team formation. Example: 20 people split into 4 teams of 5 - run the tool 4 times, picking 5 each time (or better: shuffle all, then divide).
Decision Making: Can't decide what to eat, where to travel, or what movie to watch? List your options and let randomness decide. Removes decision paralysis.
Survey/Testing: Select random participants for user testing or surveys from a larger pool. Ensures representative samples without selection bias.
Gaming & Entertainment: Draft order for fantasy sports, seat assignments for events, turn order in games, random question selection for quizzes.
FISHER-YATES SHUFFLE ALGORITHM
How it works: Start with your list. Pick a random item from the remaining unselected items, add it to results, remove from pool. Repeat until you've picked enough items. This ensures each item has exactly equal probability of being selected at each step.
Why Fisher-Yates? It's the gold standard for unbiased shuffling. Naive approaches (like "sort by random number") have subtle biases. Fisher-Yates guarantees true uniform distribution - every possible ordering is equally likely.
Performance: O(n) time complexity - extremely fast even for large lists. Can shuffle 10,000 items in milliseconds. Created by Ronald Fisher and Frank Yates in 1938, modernized by Richard Durstenfeld in 1964 for computers.
Mathematical Proof: Each item has exactly 1/n probability of being in any position. This is provably fair - no item has advantage over another, no position is more likely than another.
UNDERSTANDING COMPUTER RANDOMNESS
Pseudo-Random vs True Random: This tool uses JavaScript's Math.random(), which is pseudo-random (deterministic algorithm, not truly random). It's unpredictable enough for fairness in contests but not cryptographically secure.
Good enough for fairness? Yes. Modern browsers use high-quality pseudo-random number generators (PRNGs). While theoretically predictable, they have billions of possible states and pass statistical randomness tests. Perfect for giveaways, games, and decisions.
When you need true randomness: Cryptographic applications (password generation, encryption keys, gambling with real money) require crypto.getRandomValues() or hardware random number generators. For picking raffle winners or splitting teams, Math.random() is sufficient and accepted.
Seed and reproducibility: Math.random() is seeded from system time and other entropy sources. You can't reproduce the same "random" sequence across different sessions - each page load starts fresh.
ENSURING FAIR RANDOM SELECTION
Transparency: For public contests, show participants the full list before selection, run selection publicly (screen share), and share results immediately. Some organizers use blockchain-based randomness for verifiable fairness.
Avoiding common biases: Don't manually remove "unlucky" results and re-roll - that's not random. Don't pick "approximately random" by eyeballing - humans are terrible at randomness. Use tools like this for guaranteed unbiased selection.
Multiple winners: If picking 5 winners from 100 people, run ONCE picking 5 items, not 5 separate times picking 1 item. Running multiple times can theoretically select duplicates (though this tool prevents it via Fisher-Yates).
Legal considerations: Some jurisdictions regulate random drawings for prizes. In US, sweepstakes (random, free entry) are legal, but lotteries (random, paid entry) are restricted. Consult local laws if offering valuable prizes.