Putting a list into random order sounds trivial until you actually need it to be fair. Drawing names out of a hat, assigning a random turn order, picking which of several equally valid options to try first, and choosing a raffle winner all depend on the shuffle genuinely giving every item an equal chance of landing in any position, rather than on a naive method that quietly favours certain positions.
Nothing you paste is uploaded anywhere. The shuffle runs as JavaScript in your browser tab, so a list of confidential names or an unpublished set of options is exactly as private after shuffling as it was before you pasted it in.
Why this list randomizer uses the Fisher Yates shuffle specifically
Many naive shuffling methods, such as sorting a list by a randomly assigned number attached to each item, are not actually unbiased. Depending on the comparison function and the sort algorithm involved, some orderings end up more likely than others, which defeats the entire purpose of shuffling something that needs to be fair.
The Fisher Yates shuffle is different. It works backwards through the list, and at each position swaps the current item with a randomly chosen item from among the positions not yet finalised, including the current one. Done this way, every possible ordering of the list is equally likely, which is the property a proper list randomizer needs and the reason this specific algorithm, rather than a sort based shortcut, is what runs under the hood here. Used this way as a fisher yates shuffle tool, it is the standard, textbook correct way to randomize list order without introducing any hidden bias.
- Start from the last item in the list and work backwards to the first.
- At each position, pick a random index from zero up to and including the current position.
- Swap the current item with the item at that randomly chosen index.
- Move to the previous position and repeat until the first item has been processed.
- The result is a uniformly random permutation, every possible order equally likely.
Math.random is not cryptographically secure
It is worth stating plainly: the randomness behind this shuffle comes from JavaScript's Math.random, the standard source of pseudorandom numbers built into every browser. That is entirely adequate for shuffling a raffle list, a turn order, a set of trivia questions or a playlist, where the goal is an unpredictable order for a human audience.
Math.random is not a cryptographically secure random number generator. Its output can, in principle, be predicted or influenced by someone who understands the underlying pseudorandom algorithm and has enough samples of its output. Do not rely on it, or on this list randomizer, for anything where the randomness needs to resist a determined attacker, such as a security token, a cryptographic key or an outcome with real money attached that someone might have an incentive to manipulate. For that class of problem, a generator built specifically on the Web Crypto API's cryptographically secure random source is the correct tool.
Common uses for shuffling a list into random order
Randomising an ordered list has a surprising number of everyday uses beyond the obvious raffle draw. Teachers use it to assign students to groups without any perceived bias in who ends up together. Event organisers use it to decide a fair speaking or presentation order among participants. Researchers use it to randomise the order questions appear in a survey, since question order can itself influence how people answer.
Product teams also use a list randomizer as a general purpose random order generator to pick which of several variants to show first in an informal test, and quiz or trivia hosts use it to shuffle a bank of questions so repeated playthroughs do not follow the same predictable order every time.
How this list randomizer handles your pasted list
The input box treats every line as one item, so blank lines are ignored and leading or trailing spaces on each line are trimmed before shuffling. Duplicate items are left exactly as they are, since a list randomizer has no way to know whether two identical lines represent genuinely the same entry or two different entries that happen to share the same text, and removing them silently would change the outcome of a fair draw.
Once shuffled, the new order is shown immediately in the same one item per line format, ready to copy back into a spreadsheet, a chat message or a script, or to download directly as a plain text file.
How to shuffle a list online
- 1
Paste your list
Enter or drop in a list with one item per line. Blank lines are ignored automatically.
- 2
Review the item count
Check the number of items detected matches what you expect before shuffling.
- 3
Shuffle the list
Press shuffle to run a genuine Fisher Yates shuffle and produce a new random order instantly.
- 4
Shuffle again if you like
Press shuffle as many times as you want. Each run is an independent random permutation.
- 5
Copy or download the result
Copy the shuffled list to your clipboard or download it as a plain text file.
Related tools worth bookmarking
Sources and further reading
- MDN: Math.randomThe browser method behind this shuffle, including the explicit warning that it is not cryptographically secure.developer.mozilla.org
- NIST: Recommendation for Random Number GenerationFederal guidance distinguishing general purpose pseudorandom generators from ones suitable for security purposes.nist.gov
Frequently asked questions
Common questions about the list randomizer.
Yes. It implements the Fisher Yates shuffle, which is mathematically proven to produce every possible ordering of a list with equal probability, unlike naive approaches such as sorting by a random key, which can be biased depending on the sort algorithm used. Each item has an equal chance of landing in any position after shuffling.
Math.random is not a cryptographically secure random number generator, so while it is entirely suitable for a raffle, a turn order or a trivia shuffle, you should not rely on it for a high stakes outcome where someone might have an incentive to predict or influence the result. For that, use a tool built on the Web Crypto API instead.
Duplicates are kept exactly as entered and shuffled along with everything else. The list randomizer has no way to know whether two identical lines are meant to represent the same entry twice or two separate entries, so it never removes or merges them, which keeps the shuffle fair to whatever the list actually contains.
No. Each shuffle draws fresh random numbers, so pressing shuffle again on the same list produces a new, independent random order almost every time. There is no seed or history involved, so you cannot reproduce a previous shuffle unless you save its output separately.
There is no fixed limit imposed by the tool. The Fisher Yates shuffle runs in linear time relative to the number of items, so even a list of many thousands of lines shuffles in a fraction of a second on ordinary hardware, limited only by your browser's own memory.
No. The shuffle function takes the array already parsed from your pasted lines and swaps entries in place using indexes drawn from Math.random, all within the same block of memory the page already holds. There is no separate shuffling service it hands the array off to, so a raffle list of real names is only ever touched by the script running in your own tab, and it disappears the moment you navigate away.