Data

List Randomizer

Shuffle and randomize any list. Type, paste, or drop a file.

Items: 0Results: 0Client-side only

Input list

Step 1

Paste items, CSV, or drop a file.

Drop CSV/TSV file or click to browse

Randomized result

Step 2

Shuffle again or copy outputs.

Your shuffled list will appear here

Add items on the left, then randomize.

1
2
3
100% client-side • your data stays private
Fisher-Yates shuffle • true randomness
Supports CSV, TSV, Excel paste

How your pasted text becomes a list of items

Before anything is shuffled, the input has to become a list, and the parser makes that decision automatically based on what it sees. If the text contains a tab character anywhere, it is treated as tab-separated — the shape Excel produces when you copy and paste cells — and split on tabs and newlines together. If there is no tab but there is a comma, and the whole input is a single line, it is split as CSV, with matching quote marks around a value stripped. Otherwise, every line becomes its own item. Each parsed item is trimmed of surrounding whitespace, and empty lines are dropped.

The one-line-CSV rule catches people out

That precedence has a sharp edge: it only treats commas as delimiters when the input is a single line. Paste a,b,c on its own and you get three items — a, b, and c. Paste the same text across two lines, a,b,c on one line and d,e,f on the next, and the parser sees a newline, skips the CSV branch entirely, and treats each full line as one item — so you get two items, a,b,c and d,e,f, commas and all, not six. Anyone pasting multi-row CSV data should convert it to one item per line first rather than relying on the comma rule.

Randomize modes: fresh shuffle vs. shuffle-the-result

Randomize takes your parsed input list and produces a brand-new shuffled order. Shuffle again, which only appears once a result exists, re-shuffles the current result rather than going back to the original input order — useful for drawing a second, independent ordering of the same set without retyping anything. Every shuffle, from either button, is saved to a session history of up to the last 10 results, so you can step back to a previous draw with the History menu, though that history is cleared the moment the tab is refreshed or the input is emptied — it is never written to disk.

The fairness question, answered honestly

The shuffle itself is Fisher-Yates, the standard algorithm for producing every possible ordering of a list with equal probability — given a truly uniform random source, no position in the list is more or less likely to end up first. What the implementation actually uses for that randomness is JavaScript's Math.random(), which is fast and unbiased enough for drawing names or ordering a list for fun, but is not a cryptographically secure source. For a raffle or drawing where someone could benefit from predicting or influencing the order, that distinction matters; for shuffling a study deck or a playlist, it does not.

Importing files, and what happens to duplicates

Dropping or browsing for a .csv, .tsv, or .txt file reads its full text and appends it to whatever is already in the input box, rather than replacing it — so importing a second file adds its items to the first rather than starting over. Duplicate values are never detected or removed at any stage; if the same item appears twice in the input, it appears twice in the parsed list and can appear twice in the shuffled result, exactly as many times as it was entered.

Copying results in the size and format you need

Once a list is shuffled, the output can be copied as every item, the top 5, the top 10, or any custom count you type in — handy for drawing a fixed number of winners from a larger pool without manually counting down the list. Copy List joins items with newlines; the CSV button joins them with commas, quoting any value that itself contains a comma so the exported line stays valid CSV.

Common use cases

Drawing names for a giveaway or raffle

Paste a list of entrants, shuffle, and copy just the top N winners using the built-in count selector.

Randomizing a study or quiz order

Shuffle flashcard prompts or quiz questions into a new order each session so answers aren't memorized by position.

Reordering a CSV or Excel export

Drop a .csv or .tsv file directly, or paste cells copied from a spreadsheet — the parser detects tabs automatically.

Re-drawing without starting over

Use Shuffle again to get a second independent ordering of the same set, without re-pasting or re-parsing the input.

Frequently asked questions

How does the tool decide whether my input is CSV or one-item-per-line?

It checks for a tab first (treated as tab-separated), then a comma with no newline anywhere in the text (treated as single-line CSV), and falls back to splitting on newlines for everything else.

I pasted "a,b,c" on two lines and got two items instead of six — why?

The comma-splitting rule only applies when the whole input is a single line. As soon as there is a newline anywhere, each line becomes one item exactly as typed, commas included, rather than being split further.

Is the shuffle actually fair?

The algorithm — Fisher-Yates — produces every ordering with equal probability given a uniform random source. It runs on JavaScript's Math.random(), which is unbiased enough for everyday shuffling but isn't a cryptographic random source, so it isn't the right tool for a high-stakes drawing where predictability would matter.

Does "Shuffle again" use my original list or the current result?

The current result. It re-shuffles whatever is presently shown, so you get another random ordering of the same shuffled set rather than a fresh draw from the untouched input.

Are my previous shuffles saved?

Only for the current session, and only the last 10. The History menu lets you reload an earlier shuffle, but the list is cleared when you refresh the page or clear the input — nothing is written to disk.

What happens to duplicate items in my list?

Nothing special — they are preserved exactly as entered. If a name appears twice in your input, it can appear twice in the shuffled result, with no deduplication at any step.

Does importing a file replace what I already typed?

No, it appends. Dropped or browsed files are added after whatever text is already in the input box, so importing a second file combines with the first instead of replacing it.

How do I copy only some of the results?

Use the Top 5 or Top 10 buttons, or type a custom count, then Copy List (newline-separated) or CSV (comma-separated, with values containing commas automatically quoted).

You might also like