List Randomiser Shuffle, Sort & Pick Winners from Any List
Paste any list — names, items, tasks, numbers — and shuffle it into a completely random order using the Fisher-Yates algorithm with cryptographic randomness. Sort alphabetically, numerically or by length. Pick random winners for raffles. Undo and redo shuffles. Copy or download the result. No login, no data sent anywhere.
Shuffle, Sort & Randomise Any List
Paste your list, click Shuffle. Fisher-Yates algorithm with crypto.getRandomValues — every permutation is equally likely. Sort, pick winners, undo and copy.
Common use cases
Rate this tool
More Than a Shuffle — A Complete List Management Tool
crypto.getRandomValues, the browser’s cryptographically secure RNG backed by hardware entropy, rather than the predictable Math.random() function used by most tools.Shuffle Any List in 3 Steps
LazyTools vs Other List Randomisers
| Feature | LazyTools | Randomlists.com | TextFixer.com | Capitalize My Title |
|---|---|---|---|---|
| Fisher-Yates shuffle | ✅ Yes | ⚠ Unknown | ⚠ Unknown | ⚠ Unknown |
| crypto.getRandomValues | ✅ Yes | ❌ Math.random | ❌ Math.random | ❌ Math.random |
| Undo / redo history | ✅ Yes | ❌ No | ❌ No | ❌ No |
| Pick random winner | ✅ Yes (N winners) | ⚠ Separate tool | ❌ No | ❌ No |
| 6 sort modes | ✅ Yes | ⚠ A-Z only | ✅ Several | ⚠ Limited |
| Multiple separators | ✅ 4 in, 3 out | ⚠ Basic | ✅ Several | ⚠ Limited |
| Deduplicate option | ✅ Yes | ❌ No | ✅ Yes | ❌ No |
Common Uses for a List Randomiser
| Use case | What to paste | Tip |
|---|---|---|
| Raffle / giveaway | Entrant names, one per line | Use Pick Winner for a verifiably fair draw |
| Classroom cold-calling | Student names | Shuffle and work down the list to be fair |
| Team assignment | All participant names | Shuffle, then split into groups of N |
| Random seating plan | Names or seat numbers | Shuffle names, assign to numbered seats in order |
| Presentation order | Presenter names | Shuffle and number for a fair speaking order |
| Test data ordering | Comma-separated values | Set input to comma, shuffle, copy for tests |
| Playlist randomiser | Song titles, one per line | Shuffle and number for a mixed playlist |
| Priority queue randomisation | Tasks or features | Shuffle backlog for random sprint selection |
Why the Fisher-Yates Shuffle Matters for Fairness
The problem with naive shuffles
A common mistake when implementing list randomisation is to generate a random number for each item and sort by it — often called a sort shuffle or sort-by-random. This approach is biased: some orderings appear more often than others due to the comparison-based nature of sorting algorithms, and the bias depends on the sorting algorithm used. For a list of 3 items (A, B, C), each of the 6 possible orderings should appear exactly 1/6 of the time. A sort shuffle typically cannot achieve this.
Fisher-Yates: unbiased by construction
The Fisher-Yates algorithm works by iterating from the last element to the first. At position i, it picks a random integer j in [0, i] and swaps elements at positions i and j. Because each element can end up in each position with equal probability, the resulting permutation is uniformly random. The algorithm runs in O(n) time — it is faster than sorting and unbiased. It was first published by Ronald Fisher and Frank Yates in 1938 and computerised by Donald Knuth in 1969.
Why crypto.getRandomValues instead of Math.random()
JavaScript’s Math.random() is a pseudo-random number generator: it produces a deterministic sequence from a seed. While fast and adequate for games, it is not cryptographically secure and its sequences can be predicted if the seed is known. For fair draws and raffles, crypto.getRandomValues is the correct choice — it uses the operating system’s entropy pool (hardware timing events, interrupt sources) to produce unpredictable, cryptographically strong random numbers. This tool uses crypto.getRandomValues with rejection sampling to eliminate modular bias.
Frequently Asked Questions
It uses the Fisher-Yates shuffle: iterates from the last item, picks a random position from the unshuffled portion and swaps. Random numbers come from crypto.getRandomValues (hardware entropy), ensuring every possible ordering is equally likely with no bias.
Yes. Fisher-Yates + crypto.getRandomValues produces uniformly random permutations — every possible ordering has exactly equal probability. Math.random() is not used as it produces predictable pseudo-random sequences.
Paste names one per line into the text area. Click Shuffle List. Names are rearranged into a random order. Click again for a different order. Use Undo to go back. Copy or download the result.
Yes. Use the Pick Random Winner section at the bottom of the tool. Set the number of winners and click Pick. The tool randomly selects that many items and highlights them. Works from your current list — shuffle first or pick directly from the pasted list.
Copy your Excel cells, paste here one per line, click Shuffle, copy back into Excel. Alternatively in Excel: add a helper column with =RAND(), sort by it, delete the column. This tool is faster for quick ad-hoc shuffles.
Paste names one per line and click Shuffle List. Fisher-Yates + crypto.getRandomValues ensures truly random results. Copy to clipboard or download as .txt. Pick random winners for raffles. Free, no account, browser-side.
Yes. The Undo button (arrow) steps back through shuffle history. Redo goes forward. All shuffles and sorts in the current session are stored in memory, so you can compare different orderings without losing previous results.
Input: newline, comma, semicolon or tab. Output: newline, comma or semicolon. Set input and output separators independently — paste a comma-separated list and output it as one item per line, or vice versa.