CodeKitHub
English
Generator Tools

Free List Randomizer

Paste a list — names, tasks, raffle entries, anything — one item per line, and shuffle it into a fair random order using a proper Fisher-Yates shuffle. Switch on winner-picker mode to draw just N random items, useful for picking a giveaway winner or assigning a random order without exposing the whole shuffled list.

What Is This Tool?

A list randomizer reorders a set of items into a random sequence, or draws a random subset from it. The tricky part is doing this without bias: a naive approach like sorting an array with a random comparison function produces a skewed distribution where some orderings are far more likely than others.

This tool uses the Fisher–Yates (Durstenfeld) shuffle algorithm, the standard method for a provably uniform random permutation — every possible ordering of your list is equally likely to appear.

Why Use It?

  • Genuinely unbiased shuffling — Fisher–Yates, not the common sort(() => Math.random() - 0.5) anti-pattern that skews results.
  • Winner-picker mode: draw exactly N random items instead of shuffling the whole list, ideal for raffles and giveaways.
  • Optional duplicate removal before shuffling, for lists that may have accidental repeats.
  • Works with any text — names, tasks, tickets, prizes — one item per line.
  • Private: shuffling happens entirely in your browser, nothing is uploaded.

How to Use

  1. Paste your list into the box, one item per line.
  2. Optionally check "remove duplicates before shuffling" if the list might contain repeats.
  3. For a full reorder, just click Shuffle. For picking winners, check the N-items option and set how many to draw.
  4. Copy the result — click Shuffle again any time for a fresh random order or a new draw.

Example

Input

Alice
Bob
Charlie
Diana
Ethan

Output

A randomly reordered list such as Charlie, Ethan, Alice, Diana, Bob — different every time you click Shuffle.

With winner-picker mode set to 2, the same input might instead produce just Ethan and Alice — a random 2-item draw, not a 2-item slice of one shuffled order.

Why a naive shuffle produces biased results

sort(() => Math.random() - 0.5) is a common trick that looks correct but isn't: it relies on the sort algorithm calling the comparator a specific number of times in a specific pattern, and real-world sort implementations don't guarantee that. The practical effect is a shuffle where certain orderings appear more often than others — subtle enough to pass a casual glance, but statistically measurable over many runs.

Fisher–Yates sidesteps the whole problem: instead of asking a sort algorithm to produce randomness indirectly, it directly swaps each position with a random remaining position exactly once, which is provably uniform regardless of the underlying language's sort implementation.

Random Number Generator · UUID Generator

Frequently Asked Questions

Why not just use array.sort(() => Math.random() - 0.5)?

That one-liner is a well-known anti-pattern: JavaScript's sort() doesn't guarantee every pair of elements gets compared the same number of times, so the resulting order is measurably biased toward certain permutations — some items end up more likely to land near the start or end than true randomness would produce. Fisher–Yates avoids this entirely by construction, and it's the algorithm this tool actually implements.

Is the shuffle order really unbiased?

Yes. Fisher–Yates walks the list once, and at each step swaps the current item with a uniformly random item from the remaining unshuffled portion. This is mathematically proven to produce every possible ordering with equal probability, given a good source of randomness (JavaScript's Math.random()).

What's the difference between shuffling and winner-picker mode?

Shuffle mode reorders every item in your list and shows you all of them, just in a new order. Winner-picker mode draws only N items at random and shows just those — useful when you want to select a fixed number of winners or samples without revealing an entire reordered list.

Can I use this for a real prize drawing or raffle?

Yes, for informal giveaways and drawings this works well since the randomness is genuinely uniform. For a legally regulated sweepstakes with monetary prizes, check your local regulations — some jurisdictions require a specific auditable drawing process.

Does removing duplicates change my original list?

No — deduplication only affects the shuffled output, and only when the checkbox is enabled. Your input list stays exactly as you typed it, so you can toggle the option and reshuffle without retyping anything.

Related Tools