piapia123
en

Random Picker

Text

Everything runs locally in your browser — nothing is uploaded

Input
Drop a file here to load its contents
Output

Paste a list, one entry per line, and draw a few at random. The random source is `crypto.getRandomValues`, not `Math.random`. Predictability is a real problem for a draw: `Math.random` is a pseudo-random sequence that can be worked backwards in some engines, so enough observed results give away the next one. The draw itself is fair — every entry has the same chance. “No duplicates” is on by default, and asking for too many raises an error. Drawing ten distinct entries from a list of five can only yield five, and the tool says “the list holds only 5 entries” rather than quietly returning five or quietly allowing repeats — the first makes you think the tool is broken, the second breaks the promise. To allow repeats (drawing with replacement), untick it. “Sort back into list order” is for reading the results out loud. A draw feels right in random order; but when you have to read the winners off a roster, or compare against the original table, jumping around is awkward, and ticking this restores the list’s own order. How it differs from shuffling text: that gives you everything, shuffled; this gives you the few that were drawn.

Features

  • Draw 1 to 200 entries from a list at random
  • The random source is `crypto.getRandomValues`, not a predictable pseudo-random sequence
  • Rejection sampling keeps every entry equally likely — no bias towards the top of the list
  • Deduplication is on by default; asking for too many errors out and says how many entries there are
  • Optionally allow repeats (drawing with replacement)
  • Optionally sort the picks back into the list’s original order
  • Blank lines and surrounding whitespace are ignored, so pasting needs no cleanup
  • Every pick is copyable on its own row, with its draw number

How to use

  1. Paste the list, one entry per line
  2. Set how many to draw, and tick repeats or list order if you need them
  3. Click Pick again for another draw, then copy the result

FAQ

Is the draw fair? Can it be biased?
It is fair, on both counts. The source is the operating system’s cryptographic random number generator (`crypto.getRandomValues`), whose internal state is never exposed and which cannot be predicted from earlier results — `Math.random` can be predicted in some engines, which makes it unfit for a draw. The mapping uses rejection sampling rather than a modulo: a modulo would make the first few positions slightly more likely (six entries sharing 256 random byte values leaves four positions with one extra source each). The skew is tiny but real, and a draw is exactly where it matters.
Why does “no duplicates” error out instead of returning fewer?
Because it is a promise. Ask for ten distinct entries, get five, and you will think the tool is broken or that you miscounted; get ten with a repeat inside and you will think deduplication failed. Both are worse than an error, and the error even tells you how many entries the list actually holds — so you immediately know whether to change the list or to allow repeats.
How is this different from shuffling text?
A shuffle hands back everything, reordered; you still have to pick off the first few yourself, and the fact that those were the ones drawn is not highlighted. This tool returns the drawn entries, numbered and individually copyable. To get the whole list in random order, shuffle; to get three names out of it, use this.

Related tools