Random Picker
Pick a random item from your list, with options to remove duplicates.
About the Random Picker
The Random Picker selects one or more items at random from a list you paste in — one item per line. Use it for raffles, classroom cold-calls, A/B test variant assignment, picking dinner from a list of options, choosing a sample for user testing, or any situation where you need an unbiased selection from a finite set. The picker supports two modes: unique (no item can be picked more than once, like drawing names from a hat) and allow repeats (each pick is independent, like rolling a die with custom faces).
Unlike simple random number generators, the picker handles arbitrary text items including names, URLs, code snippets, or full sentences. The output preserves whatever you paste — useful when items have specific formatting or context (e.g., “Alice (manager)” versus just “Alice”). The picker uses JavaScript's Math.random(), which is a cryptographically-unsafe PRNG — fast and statistically uniform, but not suitable for raffles with cash prizes or for gambling applications.
For a true random selection suitable for legal raffles or statistical sampling, the picker would need to use crypto.getRandomValues() (which we use in our PIN Code Generator). The current implementation is fine for casual use, classroom assignments, prototyping, and product decisions where cryptographic unpredictability isn't required.
How It Works
The picker splits your input on newlines using String.split('\n'), trims whitespace from each line with String.trim(), and removes empty lines with Array.filter(Boolean). The result is an array of clean items ready for random selection.
In unique mode, the picker uses a Fisher-Yates-like approach: a working copy of the items array is made (so the original isn't mutated), and on each pick a random index is chosen with Math.floor(Math.random() * pool.length). The chosen item is removed from the pool with Array.splice(), ensuring it can't be picked again. This guarantees uniform probability across all combinations.
In repeat mode, each pick is independent: items[Math.floor(Math.random() * items.length)] is called once per requested pick. The probability of any specific item being picked on each draw is 1 / items.length, and picks are statistically independent — useful for simulating dice or weighted random selection (if you want weighted selection, list items multiple times to weight them proportionally).
The picker validates inputs before processing. If the requested count exceeds the available items in unique mode, it shows an error suggesting either switching to repeat mode or reducing the count. Empty input is rejected with a clear error message.
Worked Examples
Default input: 8 names (Alice through Heidi), picking 1 unique. Each click returns one name at random with uniform 1/8 = 12.5% probability per name. Click multiple times to see different selections.
Pick 3 unique names from the default 8 to assign team roles (scrum master, tech lead, demo presenter). The picker returns 3 distinct names, each shown with its pick number. The probability of any specific combination is 1 / C(8,3) = 1/56 — about 1.79%.
For dinner roulette, paste your top 5 restaurant options and pick 1. Repeat if you don't like the result (we won't tell). This is more decisive than scrolling through Yelp for 20 minutes.
For A/B test variant assignment with weighted probabilities, list each variant proportional to its desired weight. If you want 60/30/10 split, list variant A six times, variant B three times, and variant C once, then pick 1 unique — A has 6/10 = 60% chance, B has 30%, C has 10%.
For classroom cold-calls, paste all student names and pick 1 unique per question. The picker remembers nothing between clicks, so the same student could be called twice in a row by chance — in a class of 25, the chance is 1/25 = 4% per pick.
When to Use This Tool
- Assigning team roles, chore rotations, or presentation order without arguments or bias.
- Choosing a sample for user research or QA testing from a list of users.
- Picking a winner for a low-stakes raffle or giveaway (use a crypto-secure tool for cash prizes).
- Selecting which feature to demo at a stakeholder review from a backlog list.
- A/B test variant assignment for non-critical experiments (use a proper hashing tool for production).
- Deciding what to cook, watch, or do this weekend from a list of options.
- Cold-calling students in class to ensure fairness and avoid always picking the same volunteers.
Limitations & Disclaimer
This picker uses Math.random(), which is a non-cryptographic pseudorandom number generator. Do not use it for raffles with cash prizes, gambling applications, security-sensitive selections, or anything requiring cryptographic unpredictability — use a tool backed by crypto.getRandomValues() for those. The picker does not support explicit weighting (you must list items multiple times) or seeded reproducibility (each pick is independent). Very large lists (10,000+ items) may be slow to process. The picker does not remember previous picks between clicks — for sequential distinct picks, copy the remaining items back into the input. See our disclaimer for full terms.
Frequently Asked Questions
Is the picker truly random?
It uses JavaScript's <code>Math.random()</code>, which is a pseudorandom number generator (PRNG) based on the XorShift128+ algorithm in most modern browsers. It's statistically uniform but not cryptographically secure — an attacker who can predict the seed could predict picks. For casual use this is fine; for raffles with cash prizes, use a crypto-secure tool.
Can the same item be picked twice in unique mode?
No. In unique mode, picked items are removed from the pool, so each pick is guaranteed distinct. If you need repeats, switch to ‘Allow repeats’ mode where each pick is independent.
How do I do weighted random selection?
List items multiple times in proportion to their desired weight. To pick with 70/20/10 weights, list item A seven times, item B twice, and item C once. The picker will select with the appropriate probabilities. A future version may add explicit weight input.
Does the picker remember previous picks?
No. Each click of ‘Pick Random’ starts fresh from the full list. If you want to track which items have been picked across multiple rounds (like a bingo caller), copy the remaining items back into the input after each pick.
What's the maximum list size?
There's no hard limit, but performance degrades with very large lists. A few thousand items is fine; tens of thousands may be slow. Browser memory is the limiting factor — for very large lists, consider using a server-side tool or a dedicated command-line utility.
Is my list uploaded anywhere?
No. All processing happens in your browser using JavaScript. Your list is never transmitted, logged, or stored on a server. You can safely paste sensitive names (employee lists, customer samples) without privacy concerns.
Last updated: July 21, 2026 · Author: HT99 Tools Editorial Team · Reviewed by: HT99 Tools Editorial Team