Random Picker
Pick random names or rows from a list with seeded replay, weights, group caps, inclusion-odds estimates, and a clear draw manifest.Current draw
| # | Picked item | Group | Weight | Source | Copy |
|---|---|---|---|---|---|
| {{ row.slot }} | {{ row.label }} | {{ row.group || '-' }} | {{ row.weightDisplay }} | {{ row.source }} |
| Section | Note | Copy |
|---|---|---|
| Method currently used | {{ methodSummary }} | |
| Estimated inclusion odds | {{ oddsSummary }} | |
| Applied constraints | Constraint filters are applied before draw: exclude list, must-include list, then optional group cap. | |
| Recommended run setup | {{ tip }} | |
| Risk checks before publishing winners | Verify candidate count and constraint flags in this run snapshot. | |
| Risk checks before publishing winners | Re-run with the same seed to confirm deterministic replay. | |
| Risk checks before publishing winners | If fairness is business-critical, keep simulation runs above 1000 before finalizing. |
| Rank | Candidate | Estimated inclusion | Group | Weight | Copy |
|---|---|---|---|---|---|
| {{ row.rank }} | {{ row.label }} | {{ row.probabilityLabel }} | {{ row.group || '-' }} | {{ row.weightDisplay }} |
| Time | Picks | Preview | Copy |
|---|---|---|---|
| {{ entry.time }} | {{ entry.count }} | {{ entry.preview }} |
Introduction:
Random selection is only fair when the candidate pool and the draw rules are settled before anyone sees the outcome. A classroom speaker order, raffle shortlist, meeting rotation, tabletop game choice, and QA sample can all use random picking, but they do not all need the same rule. Some draws need every name to have the same chance. Others need ticket-style weights, no duplicate winners, one seat per team, or a required participant placed into the result before the remaining slots are filled.
The first fairness question is eligibility. A name that should not be considered must be removed before the draw, not after an inconvenient result appears. Duplicates also need a decision: repeated labels can represent accidental duplicate typing, or they can represent extra chances. The second fairness question is sampling. Drawing without replacement produces a unique list of candidate rows, while drawing with replacement treats each slot as a fresh sample from the same pool.
| Situation | Rule that usually matters | Common mistake |
|---|---|---|
| Picking winners or speakers | Without replacement | Allowing the same person to occupy multiple slots. |
| Ticketed raffle or weighted sample | Positive weights | Mixing accidental duplicates with intentional extra chances. |
| Teams, cohorts, or categories | Group cap | Letting one group fill the whole result when a balanced list was expected. |
| Auditable or shared draw | Seeded replay | Changing the list or rules between the original draw and the replay. |
- Eligible pool
- The candidates left after blank lines, deduplication, exclusions, and invalid weights are handled.
- Weight
- A positive chance value that acts like extra tickets in weighted mode, not a score or ranking by itself.
- Replacement
- The rule that decides whether a picked row stays available for another slot in the same run.
- Seed
- A replay key for the same list and rules. It makes a draw checkable, but it does not prove that the source list was fair.
A seed is a reproducibility tool, not a fairness guarantee by itself. The same seed, list, and rules should recreate the same sequence, which is helpful when a result has to be checked later. A blank seed favors a fresh draw instead. For decisions that need review, the important record is broader than the picked names: it includes the eligible pool, the policy, the weights, any forced entries, and the constraints that could shorten or reshape the final list.
Inclusion odds can help explain a draw before it is trusted. They answer a different question from the final result: how often a name tends to appear under the current rules across repeated simulated draws. That estimate can reveal an oversized weight, a strict group cap, or a forced entry that dominates the outcome, but it cannot make a biased source list neutral or turn an informal draw into a regulated lottery.
How to Use This Tool:
The controls are arranged for a documented draw: build the candidate pool, choose the sampling policy, add any constraints, then read the manifest before using the charts or exports.
- Paste entries into Candidate list, one per line. Use plain labels for equal chances, or add attributes such as
| weight=3and| group=Team Awhen weights or group limits are part of the rule. Dragging or browsing for a TXT or CSV file replaces the list with the file text. - Set Number of picks. The control accepts 1 to 500 requested picks, and the summary should show how many candidates were parsed before you draw.
- Choose Selection policy. Use Without replacement when duplicate winners or repeated rows would be wrong. Use With replacement only when each slot is a fresh sample from the same pool.
- Turn on Weighted mode only when the
weight=...values are intentional. Lines without a valid weight use the Default weight in Advanced settings. - Enter a Seed if the draw may need replay. Leave it blank for a fresh browser-random draw, or use Randomize to create a seed value before publishing a result.
- Open Advanced for exclusions, must-include labels, group caps, deduplication, case-insensitive matching, alphabetical manifest display, and the number of fairness simulation runs. If a must-include label does not appear, check whether it was excluded, deduplicated, case-mismatched, or blocked by a group cap.
- Press Pick. The Current draw summary should change from a ready state to picked labels, and the Draw Manifest tab should list each selected slot with its group, effective weight, and source.
Interpreting Results:
Start with the Draw Manifest. It is the main record of the run because it shows the slot number, picked item, group, effective weight, and source. A source of must-include means the row was placed by rule before the random pass filled the remaining slots. A source of drawn means the row came from the active random policy.
If the result contains fewer rows than requested, treat that as a constraint outcome first. The eligible pool may be too small, exclusions may have removed names, must-include labels may have consumed slots, or a group cap may have blocked otherwise eligible entries. Verify the parsed candidate count and active badges in the summary before assuming the draw failed.
- Selection Wheel recaps the picked rows. It does not show pre-draw odds.
- Inclusion Odds Donut estimates which candidates tend to appear under the current rules. The chart trims to the highest displayed values, so omitted labels are not necessarily zero-chance labels.
- Odds Ledger gives the more detailed probability table with group and weight context.
- Weight Ring Map appears when weighted mode is on and shows how many candidates share each weight value, not who won the draw.
Technical Details:
Each non-empty line becomes a candidate. The first pipe-separated segment is the label, and optional later segments can declare a positive weight or a group. Other attributes are ignored. Case-insensitive matching affects deduplication, exclusions, and must-include matching. When deduplication is enabled, repeated labels collapse before exclusions are applied, so only the first surviving label remains eligible.
Eligibility is built in a fixed order. Parsed labels are optionally deduplicated, excluded labels are removed, and must-include labels are inserted before the remaining random slots are filled. An excluded name cannot be forced back into the draw. Group caps are checked whenever a candidate is added to the result, including must-include rows. The cap applies only to candidates that have a group value, so ungrouped entries remain uncapped.
Rule and Probability Core:
Uniform and weighted draws use different probability rules. For a single equal-chance pick from N eligible candidates, each candidate starts with the same chance:
| Mode | Mechanism | Result behavior |
|---|---|---|
| Uniform, without replacement | Eligible candidates are shuffled, then the first requested slots are taken. | No duplicate candidate rows appear within that run. |
| Uniform, with replacement | Each slot samples uniformly from the eligible pool. | The same candidate can be picked again in a later slot. |
| Weighted, without replacement | Each candidate receives a priority key based on a random value and its weight, then the largest keys are kept. | Higher weights improve inclusion chances while still preventing duplicate candidate rows. |
| Weighted, with replacement | Each slot uses weighted roulette sampling from the eligible pool. | Higher weights affect every slot, and repeats remain possible. |
A blank seed uses the browser's cryptographic random API when available and falls back to the browser's standard pseudo-random source if needed. A non-empty seed switches the run to a deterministic pseudo-random sequence derived from the seed text. Seeded replay is valuable for auditability, but it should not be mistaken for certified randomness or a security control.
The inclusion-odds estimate uses repeated simulated draws with the same active rules. For each simulated run, a candidate is counted once if it appears anywhere in that run, so the percentage estimates inclusion rather than slot-by-slot frequency. The estimate is especially useful when group caps, must-include labels, and weights interact in ways that are hard to reason about by inspection.
| Area | Current rule | Interpretation note |
|---|---|---|
| Requested picks | 1 to 500 | Constraints can still return fewer rows than requested. |
| Default weight | Minimum 0.001, capped internally at 1,000,000 | Zero, negative, or invalid weights do not create valid weighted chances. |
| Group cap | 1 to 500 per named group when enabled | Only candidates with a group label are limited. |
| Fairness simulation | 50 to 3000 runs | More runs reduce visible noise but still produce an estimate. |
| Odds display | Top 24 rows in the ledger, top 12 in the donut chart | Trimmed rows may still have non-zero inclusion odds. |
| Recent runs | Newest 20 runs retained in the page | History supports quick replay and comparison during the current session. |
Limitations and Privacy Notes:
The draw, parsing, simulation, charting, history, and exports run in the browser page. Candidate text is not uploaded for the selection process, but normal page assets still have to load before the tool can run.
- Use the tool for classroom, workshop, QA, game, and informal documented selections, not regulated lotteries, gambling, procurement awards, or legal draws that require external oversight. A generated outcome has no monetary value by itself.
- Seeded results are replayable, not more random. Anyone who knows the seed, list, and settings can reproduce the same sequence.
- Monte Carlo percentages are estimates. Rerun with more simulation runs when small percentage differences affect the decision.
- A clear manifest cannot fix an unfair source list, incorrect weights, missing exclusions, or a group rule chosen after the result was viewed.
Worked Examples:
Three student speakers with one per table
A teacher has 12 students across four table groups and wants three speakers. Each line includes a group=... value, Without replacement is selected, Group cap is enabled, and Maximum per group is set to 1. The manifest should return at most one selected student from each group, and a fixed seed lets the teacher replay the same list in front of the class.
Weighted QA account sampling
A QA lead has eight stable accounts and four new accounts. The new accounts get weight=3, the older accounts keep the default weight, and four picks are drawn without replacement. The final manifest still contains a random sample, but the Odds Ledger should usually show the new accounts with higher estimated inclusion because their weighted share is larger.
A shorter result after strict constraints
A workshop list asks for five picks, forces one moderator, excludes two unavailable people, and caps each team at one. Only four eligible team-balanced rows may remain after those rules. In that case the shorter manifest is the correct warning sign: the requested count was larger than the constrained pool could honestly supply.
FAQ:
Why did the same name appear more than once?
The draw may be using With replacement, or the list may contain repeated labels while deduplication is off. Use Without replacement for unique candidate rows, and enable Deduplicate labels when repeated labels are accidental rather than intentional extra chances.
Why did a must-include label not appear?
Must-include labels must still be eligible. An excluded label, a missing label, a case mismatch when case-insensitive matching is off, or an active group cap can prevent a forced row from entering the manifest.
Do weights matter when weighted mode is off?
No. The list can still contain weight=... text, but every eligible candidate is treated as weight 1 until Weighted mode is on.
Does alphabetical sorting change the draw?
No. Sort manifest alphabetically changes the display order after the draw. It does not change the random sequence, source labels, or inclusion-odds estimate.
What should I save when a draw needs to be checked later?
Save the seed, original candidate list, selection policy, weighted-mode setting, default weight, exclusions, must-include labels, group-cap settings, and the manifest export. A replay is meaningful only when those inputs and rules stay the same.
Glossary:
- With replacement
- A draw policy where a selected candidate remains eligible for later slots in the same run.
- Without replacement
- A draw policy where a selected candidate is removed from eligibility for the rest of that run.
- Weight
- A positive value that gives one candidate a larger or smaller share of a weighted draw.
- Seed
- A text value that makes the same list and settings reproduce the same pseudo-random sequence.
- Group cap
- A maximum number of selected candidates allowed from the same named group.
- Inclusion odds
- The estimated chance that a candidate appears at least once under the current rules across many simulated draws.
References:
- Crypto: getRandomValues() method, MDN Web Docs.
- Math.random(), MDN Web Docs.
- Fisher-Yates shuffle, NIST Dictionary of Algorithms and Data Structures.
- Weighted Random Sampling over Data Streams, arXiv.
- Measurement Uncertainty, National Institute of Standards and Technology.