Random Choice Generator — Pick a Random Item from a List
Options
Result
Tip: Ctrl/Cmd + K focuses the box. Draws use crypto.getRandomValues
when available.
How it works
- Reads all non-empty lines (optional) as your choice list.
- Generates secure random indices via
crypto.getRandomValues
(fallback:Math.random()
). - Supports picking multiple winners and “no repeats” draws.
- “Shuffle All” returns a full randomized order (Fisher–Yates).
Random Choice Generator: How It Works, Fairness, and Best Practices
A random choice generator helps you pick an item from a list without bias. Paste options (one per line) and the tool selects a result using a pseudo-random process. For everyday decisions—like choosing a restaurant, assigning tasks, or running a classroom activity—this is fast, simple, and private. Everything runs in your browser; your data never leaves your device.
How random selection works
The picker converts each non-empty line into an option. When you click “Pick,” it generates a random index to select one or more items. Our implementation prefers the browser’s crypto.getRandomValues
for higher-quality randomness, with a safe fallback to Math.random()
on older environments. For “Shuffle All,” the tool uses the Fisher–Yates algorithm, which uniformly permutes the list so each order is equally likely.
Fairness and bias
Fairness means each option has the same probability of being chosen, assuming your list has unique items. If a name appears multiple times, it effectively increases that option’s weight. Use “Remove Duplicates” before drawing if you want strictly equal chances for each unique value. For multiple winners, enable “No repeats” to draw without replacement (e.g., winners cannot be selected twice). If “No repeats” is off, each draw is independent and duplicates are possible.
Is it cryptographically secure?
This tool is designed for casual use, classroom fairness, and lightweight raffles—not for high-stakes, audited giveaways. While crypto.getRandomValues
improves entropy, public drawings that require transparency usually demand verifiable methods (e.g., public seeds, third-party proofs, or blockchain-based beacons). For serious audits, publish your list, method, and a verifiable seed, then archive the results.
Practical tips
- Clean your list: Use “Trim Lines” to remove stray spaces and “Remove Duplicates” to avoid accidental weighting.
- Document results: After drawing, click “Copy” and paste the outcome into your notes for simple record-keeping.
- Multiple winners: Set the “Winners” count. Turn on “No repeats” for unique winners; turn it off to allow duplicates.
- Shuffle first: Need an unbiased order (e.g., speaking lineup)? Use “Shuffle All” to randomize the full list.
- Large lists: Break up extremely long lists, especially on low-memory devices, to keep interactions snappy.
When to use a weighted or secure draw
If you must favor some options (e.g., loyalty tiers), you need a weighted picker rather than duplicate lines. For compliance or public giveaways, consider a cryptographically verifiable process with published seeds and reproducible steps. For everyday choices, this lightweight generator keeps things quick, private, and fair.
FAQs
Is my list private?
Yes. The random pick happens locally in your browser—no data is uploaded.
Is this cryptographically secure?
No. It’s intended for casual decisions and uses the browser’s RNG. For audits, giveaways, or security-critical draws, use a verifiable, cryptographically secure method.
Can I add weights or multiple winners?
You can pick multiple winners and prevent repeats. Weighted choices aren’t supported in this version.