Selected Items
{{ picks.length }} picked
{{ p }}
Unique Weighted Seed {{ seedDisplay }} Groups
Items List
Drop file to load list
Drag & drop a .txt or .csv to replace the list.
Default
Max/group
# Item Copy
{{ i + 1 }} {{ p }}

      
History
  • {{ h.time }} {{ h.items.length }} items
    {{ h.items.join(', ') }}
:

Introduction:

Names and items are entries you can draw at random to choose turn order or winners. A random name picker without repeats helps share turns in classes and teams. You may keep equal chances or assign weights so some entries are more likely.

Reproducible draws matter when you want to show how a result was made. Add a seed so the same list and settings give the same picks on any run. Leave the seed blank when you prefer a fresh draw that cannot be repeated.

Groups limit crowding when entries belong to teams or categories so a draw can include at most a set number from each group. You can also require a few names to appear first and exclude others for one round. This keeps rotations balanced while letting you adapt to real constraints.

A quick example is a class with ten students where you need three speakers today. Turn on weights to give one student a higher chance and cap one per team so the lineup spans groups. The result shows the chosen names and you can copy a record for notes.

Use consistent spelling, one name per line, and the same seed when you want audits. Results are a helper for scheduling and should not be used for gambling.

Technical Details:

Random selection observes a finite set of candidate labels and returns one or more picks. With equal weighting each candidate has the same chance on a single pick. With weights, chance scales in proportion to each item’s weight value.

When unique selection is on, draws are without replacement and later picks come from a shrinking pool. If group caps are set, the pool also excludes items from any group that has already reached its per‑draw limit. A must‑include list is applied first and still respects uniqueness and group caps.

Seeding controls reproducibility. A non‑empty seed initializes a counter‑based pseudo‑random generator with a 128‑bit hash of the seed string and yields uniform values on [0,1). With an empty seed, the engine uses a non‑deterministic source. Identical list, options, and seed reproduce the same picks.

P(i) = 1 N P(i) = wi wj
Symbols and units
Symbol Meaning Unit/Datatype Source
N Number of eligible candidates in the current pool integer derived
wi Weight assigned to candidate i number > 0 input
wj Sum of weights over the current pool number derived
P(i) Chance to be selected on a single pick probability derived
r Requested number of picks in a round integer input
c Maximum items allowed per group in a round integer input
s Seed string for reproducible draws string input
Worked example. Ten candidates with weights {3, 1, 2, 1, 1, 1, 1, 1, 1, 1} give a total of 13. For a single pick with weights on, Alice has P(Alice) , a ~23% chance; each weight‑1 item has 1/13 ≈ 7.69%. With uniqueness on and three picks, Alice can appear at most once; with a group cap of 1, only one member per group can appear in the same round.
  1. Parse one item per line; optional segments appear after a pipe in key=value form.
  2. Accept keys weight and group (case‑insensitive); other keys are ignored.
  3. Build the candidate pool by removing excluded labels and zero‑weight entries.
  4. Pre‑fill any must‑include labels while respecting uniqueness and group caps.
  5. For each remaining pick, filter out over‑cap groups, then select by weight or evenly when weights are off.
  6. Update group counts; remove the chosen item when uniqueness is on; repeat until r picks or pool exhaustion.
Validation and bounds extracted from code
Field Type Min Max Step/Pattern Error/Behavior Notes
Number of picks number 1 dynamic bound Clamped to available pool considering uniqueness and group caps Disabled when no candidates
Seed string any string Blank uses non‑deterministic source Randomize option supplies a stamped seed
Default weight number 1 step 1 Used when a line omits weight=… Positive numbers only
Group cap number 0 step 1 0 disables group limiting Applies per draw
Exclude / Must‑include multiline text exact label match Case‑sensitive; missing labels ignored One label per line
Line attributes inline tokens [A‑Za‑z]+ = value Only weight and group are recognized Segments appear after |
I/O formats
Input Accepted Families Output Encoding/Precision Rounding
Items list Plain text, one line per item; optional | weight=… | group=…; import .txt, .csv Picks table strings
Copy/Download CSV rows #,Item CSV file or clipboard UTF‑8
JSON state Copy or download Inputs, parsed items, candidates, picks, history Formatted JSON Probabilities shown to two decimals; internal series uses four decimals

Units, precision & rounding. Percentages in the probability chart display two decimals; internal calculations use standard floating‑point arithmetic. History timestamps use your local time with hours, minutes, and seconds.

Randomness, seeds & reproducibility. Seeded draws are deterministic for a given list and options. Unseeded draws vary each run. With uniqueness on, successive picks are not independent because the pool shrinks.

Networking & storage behavior. Processing is client‑only. Imports use local file reads, copies use the clipboard, and downloads are generated on the device; nothing is uploaded.

Performance & complexity. Each selection scans current candidates; time per pick is linear in pool size. Large lists are practical, though rendering charts for hundreds of labels may feel slower.

Diagnostics & determinism. Identical inputs, seed, and options yield the same results; changes to list order or options change outcomes by design.

Security considerations. Labels are treated as plain text. If you paste results into other systems, ensure untrusted text is properly escaped to avoid injection in downstream tools.

  • Seeds are case‑sensitive strings.
  • Only weight and group are parsed from line attributes.
  • Heads‑up Duplicate labels on separate lines are treated as separate candidates; “Exclude” and “Must‑include” match by label only.
  • Zero or negative weights are ignored; zero‑weight items do not enter the pool.
  • Group caps apply per draw, not across history.
  • Must‑include beyond the requested count are ignored.
  • Probability chart shows the top 30 labels by relative odds.
  • Sorting picks alphabetically affects display only.
  • Clipboard and download behavior depend on device permissions.
  • History retains recent rounds only and is not persisted.
  • Blank or whitespace‑only lines are ignored.
  • Non‑ASCII names are supported; ensure consistent encoding when importing files.
  • Trailing spaces change exact label matching for “Exclude” and “Must‑include”.
  • Very long labels may wrap or rotate in charts.
  • Fractional weights are allowed; odds scale proportionally.
  • Group cap set below the number of must‑include items can reduce random picks.
  • Requested picks can be reduced by pool limits or caps.
  • Clipboard access can fail if blocked by user or policy.
  • Imported files with unusual line endings are normalized to single newlines.
  • Extremely large lists may slow chart drawing even when selection remains fast.

How‑to · Step‑by‑Step Guide:

Random draws from a labeled list with optional weights and groups.

  1. Enter one label per line; optionally add | weight=… and | group=… segments.
  2. Set Number of picks for this round.
  3. Provide a Seed for reproducible results or leave blank for a fresh draw.
  4. Enable Unique to avoid duplicates within the round.
  5. Turn on Weights if odds should follow their values.
  6. Use Exclude and Must‑include to refine this round.
  7. Enable the group rule and set a Max per group to limit crowding.
  8. Run the draw and review the picks, odds, and optional JSON snapshot.
Example. Three picks from a ten‑name list with weights on, uniqueness on, and group cap 1 returns at most one name per group with odds proportional to weights.
  • Keep spelling consistent for exact matches.
  • Use a saved seed value when you need an audit trail.
  • Sort results alphabetically for easier sharing without changing the draw.

You now have a fair, explainable list of picks ready to copy or save.

FAQ:

Is my data stored?

No. Files are read locally, copies go to your clipboard, and downloads are generated on your device; nothing is sent to a server.

Clear history if you do not want past rounds kept in memory.
How fair is the draw?

Equal weighting gives even chances; with weights, odds scale linearly. Seeded draws are reproducible. The generator is not intended for gambling or lotteries.

What formats are supported?

Enter plain text lines. Optional attributes follow a pipe as weight=… and group=…. CSV and TXT files can be imported.

Can I reproduce a past result?

Yes. Use the same list, options, and the recorded seed. If any differ, results will change by design.

Why did I get fewer picks than requested?

Caps, uniqueness, or exclusions can exhaust the pool. Reduce the cap, turn off uniqueness, or adjust the list to restore availability.

How do I ensure one per team?

Add | group=Team Name on each line, enable the group rule, and set the cap to 1.

Do weights accept decimals?

Yes. Any positive number is valid; odds scale with the value. Zero and negative values are ignored.

Does sorting change the outcome?

No. Sorting affects display only. Selection uses the parsed list and current options.

What does it cost?

There is no purchase action on this screen. Check your site’s licensing terms for details.

Troubleshooting:

  • The draw button is disabled when the pool is empty; check exclusions and caps.
  • A name does not appear; verify spelling and case in the list and must‑include box.
  • Too many from one group; lower the cap or enable the group rule.
  • Odds chart is empty; populate the list or enable weights.
  • Wheel is blank; run a draw first.
  • Copy fails; allow clipboard permissions and try again.
  • CSV looks wrong; ensure labels do not include line breaks.
  • Import shows odd symbols; save the source file in UTF‑8.

Advanced Tips:

  • Tip Save and attach the seed to announcements for easy audits.
  • Tip Use weights to balance past participation without removing anyone.
  • Tip Group by team, track, or role to keep lineups varied.
  • Tip Keep labels short for clearer charts and exports.
  • Tip Use exclude for one‑off conflicts instead of editing the master list.
  • Tip When auditing, export JSON to preserve inputs, candidates, and results together.

Glossary:

Candidate
A label eligible to be drawn this round.
Weight
A positive number that scales chance on a pick.
Seed
A string that makes results repeatable.
Unique
Sampling without replacement within a round.
Group cap
Maximum items from a group in one round.
Must‑include
Labels guaranteed to appear first when present.
Exclude
Labels temporarily removed from the pool.
Probability
Chance of selection on a single pick.
History
Recent rounds with time, items, and seed.

Privacy & compliance. No data is transmitted or stored server‑side. Outcomes are purely random and have no monetary value.