Skip to content
TextLab

Free list randomizer and winner picker

Randomize a list and pick winners fairly

Paste a list and TextLab shuffles it into a genuinely random order, or pulls the number of winners you ask for. It is free, wants no account, and does the drawing inside this tab using Fisher-Yates with the browser's cryptographic random source — the shuffle every order is equally likely under, not the biased one-liner most pages use. Each draw comes with three reserves and a record you can save as proof of how the winner was chosen.

  • 100% free
  • No signup
  • Unbiased Fisher-Yates
  • Winners plus reserves
  • Saveable draw record
0entries in the hatone entry per line, or switch to commas below

How to randomize a list

Three steps, and the draw itself takes one click.

  1. Put the entries in the box, one per line

    Paste the entrant list, the class register, the running order or the quiz questions straight in — a column copied out of a spreadsheet arrives one per line already. If your entries are strung together with commas or semicolons instead, switch the separator menu and each piece becomes its own ticket. The counter above the box shows how many tickets are in the hat before you draw anything.

  2. Decide how many you are pulling out

    Leave the pick field empty to shuffle the whole list into a new order, which is what you want for a running order, a seating plan or the sequence of questions in a round. Type 1 to pull a single winner, or 5 for five prizes. Tick the fold-repeats box if the same person entered eleven times and you want them to hold one ticket rather than eleven.

  3. Draw, then keep the evidence

    Press the button once and the result appears numbered, with the next three names listed underneath as reserves for anyone who never claims. Save the draw record and you get a plain text file holding the winners, the reserve order, the size of the pool, the time of the draw and the method used — the thing to attach when somebody asks how the winner was chosen. Drawing again starts a fresh, independent draw; it does not reshuffle the old one.

Technical specifications

How the order is producedFisher-Yates in Durstenfeld's in-place form: n − 1 swaps for n entries, each position exchanged with one chosen from the entries not yet settled
Where the randomness comes fromcrypto.getRandomValues — the browser's cryptographic generator, the same source used for encryption keys — supplying a fresh 32-bit value for every swap
Bias removedValues landing above the last whole multiple of the list length are discarded and redrawn, so no position is favoured; on a 100,000-entry list fewer than one draw in 40,000 is discarded
How many orders a list has10 entries have 3,628,800 possible orders, 20 have 2.4 × 10¹⁸ and a 52-line list has 8.07 × 10⁶⁷ — more than one draw could repeat in the lifetime of the universe
Drawing winnersPick any number from 1 to 100,000; the three names behind the winners are listed as reserves, and the saved record carries both lists with a timestamp
How the list is readOne entry per line, or comma-separated, or semicolon-separated; blank lines and stray spaces are dropped, and repeated entries stay as separate tickets unless you fold them into one, which ignores capitals
SpeedA 1,000-name list is shuffled in about 1 ms on an Apple M-series laptop and 100,000 names in roughly 60 ms, the cost being one generator call per swap
PriceFree, with no account and no limit on how many draws you run

Frequently asked questions

Is the shuffle actually random, or does it favour the names at the top?

It favours nothing: every one of the possible orders is equally likely. The list is shuffled with Fisher-Yates, which walks from the last position to the first and swaps each one with a slot picked from the entries not yet fixed, and the picking uses crypto.getRandomValues rather than the ordinary random function. There is one more subtlety most implementations skip: taking a raw 32-bit number modulo the list length quietly favours the lower positions, because 4,294,967,296 does not divide evenly by 7 or by 1,000. Draws that land in the ragged tail above the last whole multiple are thrown away and taken again, which removes that lean completely and costs less than one wasted draw in 40,000 on a list of 100,000 names.

Can the same person be drawn twice?

Not from one draw — a shuffle moves each entry to exactly one position, so nobody can occupy two. If a name is sitting in your list several times it holds several tickets and can win more than one prize, which is usually what you want for a raffle where people earned extra entries and never what you want for a class register. The fold-repeats checkbox collapses identical lines into one ticket and ignores capitals while doing it, so Ana Marino and ana marino are treated as the same person.

How do I give some entrants more chances than others?

Repeat their line once for every extra chance and leave the fold-repeats box unticked. Somebody who earned three entries appears on three lines and holds three of the tickets in the hat; with 120 lines in total their odds are 3 in 120. This is the honest way to weight a draw, because the arithmetic stays visible in the list itself — anyone can count the lines and check. It also means the pool grows quickly, so keep the paste under a few hundred thousand lines and the draw still lands instantly.

Why is shuffling with sort and a random comparison a bad idea?

Because sorting with a coin-flip comparison does not produce equal odds, and the result depends on which sorting algorithm your browser happens to use. The comparison is asked inconsistent questions — it may say A beats B, B beats C and C beats A — and a sort given contradictory answers takes shortcuts. On a three-item list the popular one-liner leaves some orders turning up twice as often as others, and the skew grows with the list. It is the single most common way an online shuffler gets this wrong, and it is invisible until somebody counts thousands of runs.

Is this good enough to run a prize draw with?

The randomness is: it comes from the same generator a browser uses to make encryption keys. What a promotion usually needs on top of that is evidence, which is why the draw record exists — it names the winners and reserves, the size of the pool, when the draw happened and how the order was produced. Screen-record the draw if the prize is worth arguing about, and keep the entrant list as it stood at closing time. Prize-promotion rules in the UK, the EU and several US states also require a stated closing date and a published method, and no shuffler can supply those for you.

Does the result stay if I reload the page?

No — reloading clears both the list and the draw, and nothing is remembered between visits. That is deliberate: a draw you can silently re-run until you like the winner is not a draw. Copy the result or save the record before you close the tab. Changing the entries after a draw does not secretly re-run it either; the panel simply warns you that the result on screen belongs to the older list.

Can I shuffle something other than names?

Anything that fits on a line: quiz questions before a round, the order teams present in, chore assignments, flashcards, a playlist you want out of album order, the sequence of interview prompts. Teachers use it to pull a name for the next question without falling into the habit of asking the same three people. The tool never looks at what a line contains, so a line can be a sentence, a URL or an emoji.

What makes a shuffle fair, and how most of them fail

The method behind this page is older than computers. Ronald Fisher and Frank Yates published it in 1938 as a procedure for randomising experimental plots with pencil, paper and a table of random digits: strike out one entry at a time, chosen from those still left. Richard Durstenfeld turned it into the in-place version in 1964, and Donald Knuth put it in The Art of Computer Programming, which is why it is often called the Knuth shuffle. The whole argument for it fits in a sentence: after n − 1 swaps there are exactly n! ways the algorithm could have gone, one for each possible order, so no order can be more likely than another.

The famous wrong way is to hand a sorting function a comparison that flips a coin. It looks equivalent and is not, for two reasons. A sort assumes the comparison is consistent — if it is told A beats B and B beats C it will not bother checking A against C — so contradictory answers send it down paths it was never designed for, and the outcome depends on which sorting algorithm the browser ships. Count the results of a few hundred thousand runs on a three-item list and the imbalance is obvious: some orders arrive twice as often as others. The second failure is subtler and survives even in correct Fisher-Yates code. Asking for a random slot with a raw number modulo the list length spreads the leftovers unevenly, because a 32-bit generator has 4,294,967,296 possible values and almost no list length divides into that cleanly. The excess falls on the low positions, so the top of your list wins slightly too often. Discarding the values in that ragged tail and drawing again is the standard fix, and it is what happens above.

The last piece is where the numbers come from. The ordinary random function in a browser is fast, seeded once and not built to resist anyone predicting it; the cryptographic generator is the one browsers use for keys and session tokens, and it is what this page calls for every swap. That matters the moment a prize is involved, which is also when evidence starts to matter more than mathematics — hence the saved record, with the pool size and the timestamp on it. For the other kinds of ordering, the section carries on next door: sort lines alphabetically when you want the opposite of random, reverse list to flip an order you already have, and numbered list generator to stamp 1, 2, 3 onto the result once the draw is settled.

Who can see your entrant list

Only you. The names never leave this tab: the shuffle is JavaScript already downloaded to your machine, the random numbers come from your own browser, and no part of the draw is reported anywhere. That also settles a question people reasonably ask about online randomisers — nobody here could tilt your draw towards a particular entrant, because nobody here ever sees one. The draw record is assembled in the page and handed to your downloads folder without a round trip, and closing the tab erases the list, the result and the count of how many draws you ran.