Shuffle the rows of a CSV

Put the rows of a CSV in random order, heading kept — for a fair draw, a blind review, or a training file — in your browser, nothing uploaded.

Shuffle CSV rowsRunning on your device

Source

or drag one here · it stays on your device

Result

Add a file and the rows appear here in a random order before anything downloads.

Download

Have a look at the result before downloading it.

How this works
  1. Add your file. Drop a CSV onto the page, or pick one.
  2. Optionally set a seed. For a shuffle you can reproduce.
  3. Shuffle. Check the preview, then download.
What it cannot do
  • A shuffled file has no order to sort back to; keep the original if the order mattered.
Questions
Is the shuffle really random?
It uses the browser’s own random source. Give it a seed number if you need the same shuffle again, or leave it blank for a fresh one each time.
Does it keep the heading row first?
Yes. The heading stays where it is; only the data rows below it change places.
Does it change any values?
No. When you shuffle the rows of a CSV here, every cell is carried through as the exact text in your file — leading zeros, long numbers and dates included. To shuffle the rows of a CSV is to change the arrangement, never a value: the download is written fresh with standard quoting and nothing in it is retyped.
Can I shuffle and then keep only some rows?
That is a random sample, which has its own page; this one keeps every row and only changes their order.
Is my file uploaded anywhere?
No. When you shuffle the rows of a CSV here, the work happens inside this page and the browser is told to block outbound connections, so there is no upload to intercept. Watch the Network tab of your developer tools while you shuffle the rows of a CSV: the only requests are for this site’s own code, and none carries your file.

Your file is processed in this page and never uploaded — the privacy page shows how to confirm that yourself.