Random Picker — Pick Random Items From a List Online
Randomly pick N items from any list (one per line). Choose with or without replacement, ignore blank lines, and trim whitespace. Uses Fisher-Yates shuffle for uniform, unbiased selection. 100% local.
Last updated:
Paste a list (one item per line), pick how many you want, and get a fair random selection using Fisher-Yates shuffle. Choose 'without replacement' for raffles (no repeats) or 'with replacement' for bootstrap sampling.
What is Random Picker?
A random picker returns N items from a list, chosen uniformly at random. The math is unforgiving: naive implementations (like sorting by Math.random) produce biased distributions and get called out in reviews. This tool uses Fisher-Yates shuffle for without-replacement sampling — the mathematically proven, uniform, unbiased algorithm — and independent uniform sampling for with-replacement mode. Randomness comes from Math.random, which is a non-cryptographic PRNG: fine for internal drawings, sample selection, and picking who buys coffee, but not appropriate for legally-binding lotteries or security-sensitive contexts.
How to pick random items from a list online
- 1Paste your list into the input, one item per line (names, IDs, options, anything).
- 2Enter how many items to pick.
- 3Choose 'without replacement' (default, no duplicates) or 'with replacement' (independent picks).
- 4Click Pick — the tool selects fairly and shows the winners.
Use Cases
Team standup order
Paste team names, pick 1 to decide who starts, or shuffle-pick everyone in random order.
Raffle winners
Choose N winners from a list of entries. Without replacement means no one wins twice.
A/B test bucketing
Randomly assign users to buckets by picking from a shuffled list, ensuring no ordering bias.
Sample survey respondents
From 1000 email addresses, pick 50 to survey — Fisher-Yates guarantees the sample is representative.
Tips & Best Practices
- ▸Fisher-Yates guarantees every possible selection is equally likely. Naive `arr.sort(() => Math.random() - 0.5)` does NOT — it's biased. Never use that pattern.
- ▸For fair lotteries with audit trails, use a certified random source (random.org signed drawings, or an on-chain VRF).
- ▸For reproducible testing, seed a PRNG (mulberry32, seedrandom) and reuse the seed — this tool always uses fresh randomness.
- ▸With replacement is what you want for bootstrap statistics (resample with replacement) — not for physical raffles.
Frequently Asked Questions
What's the difference between 'with' and 'without replacement'?
Without replacement (default): each item can be picked at most once — perfect for raffles or 'choose 5 winners from 100 entries'. With replacement: each pick is independent, so the same item can be picked multiple times — used in bootstrap sampling and rolls-with-replacement scenarios.
Is the randomness fair?
Yes — the tool uses Fisher-Yates shuffle for without-replacement sampling, which is proven to produce uniform random permutations. For with-replacement it uses independent uniform sampling per pick. Randomness comes from Math.random, which is fine for casual purposes but not for cryptography or fair-lottery guarantees.
Can I use this for a giveaway or raffle?
For low-stakes internal drawings, yes. For legally-binding giveaways where fairness is auditable, use a certified random source (e.g. random.org's signed drawings, or an on-chain oracle) — Math.random doesn't provide the audit trail regulators expect.
What if I ask for more items than the list has?
Without replacement: the tool caps at the list length and picks all items in random order. With replacement: it picks the number you requested — no cap.
Is my list uploaded anywhere?
No. All picking runs locally in your browser.
Related Tools
Regex Tester
Test regular expressions online. Live match highlighting, capture groups, and support for JavaScript flags (g, i, m, s, u, y).
Regex Replace
Find and replace text with a regular expression online. Supports every JavaScript flag (g, i, m, s, u, y), all backreferences ($1..$9, $&, $`, $', $<name>), and escape sequences (\n, \t) in the replacement. Live match-by-match preview and diff. 100% local.
Text to Speech
Convert text to spoken audio using your browser's built-in Speech Synthesis API. Pick from all voices installed on your OS, adjust rate, pitch, and volume. No account, no download, no upload — 100% local.
XML Formatter
Format, beautify, and validate XML documents online. Handles namespaces, CDATA sections, and mixed content.
SQL Formatter
Format and beautify SQL queries. Supports SELECT, JOIN, subqueries, CTEs, and multiple SQL dialects.
Case Converter
Convert text between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, and more.