List Randomizer
Shuffle, sample or pick from a list with a reproducible seed option.
- Runs locally in your browser
- No upload required
Try it
Supported formats
Privacy
Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.
Returned 3 of 3 entries via shuffle.
How it works
- Parsed the list, splitting on new lines and commas.
- Ran a Fisher–Yates shuffle over the entries.
- Returned the whole shuffled list, the first N entries, or a single pick.
- Disclosed whether the source was the CSPRNG or a reproducible seed.
- A seeded shuffle is reproducible by design and must not be used where fairness is claimed.
- Shuffle keeps every entry exactly once; sample and pick return distinct entries in shuffled order.
Methodology
- Parse the list, splitting on new lines and commas and dropping blanks.
- Resolve the random source: the injected or seeded source for reproducible runs, otherwise the platform CSPRNG.
- Run a Fisher–Yates shuffle, drawing a uniform index with rejection sampling for each position.
- Return the whole list (shuffle), the first N entries (sample) or the first entry (pick).
Usage
- Paste the list, one entry per line or separated by commas.
- Choose shuffle, sample or pick.
- For a sample, set how many entries to draw.
- Run the tool and copy the result.
Examples
These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.
Shuffle three names
{
"items": "Ada, Grace, Alan",
"mode": "shuffle",
"seed": "example"
}Sample two of five
{
"items": "a\nb\nc\nd\ne",
"mode": "sample",
"count": 2,
"seed": "example"
}Pick a winner
{
"items": "A\nB\nC",
"mode": "pick",
"seed": "example"
}Limitations
Fisher–Yates, not sort-by-random
Sorting by `Math.random() - 0.5` looks like a shuffle but is biased: many orderings are far more likely than others. The Fisher–Yates algorithm swaps each position with a uniformly chosen position at or after it, producing every ordering with equal probability.
Rejection sampling is used for each index so the choice is uniform rather than modulo-biased.
Frequently asked questions
- Is the shuffle fair?
- The Fisher–Yates shuffle gives every permutation the same probability when driven by an unbiased random source. The default path uses the Web Crypto source with rejection sampling; a seeded run is deliberately reproducible and should not be used for a public draw.
- What is the difference between sample and pick?
- Sample returns N distinct entries (without replacement); pick returns exactly one entry. Both draw from the same shuffled order, so no entry is repeated within a sample.
- Can I keep duplicates in the list?
- Yes. Entries are matched as text, so two identical lines are two separate entries and each can be drawn.
Sources
Send feedback
Tell us if this tool helped, report a problem, or suggest a tool. Only the message you type is sent — never the input you used in the tool.
Was this tool useful?
Prefer to write to us directly? See the contact page.