An Excel random data generator builds a table of made-up rows (names, emails, companies, dates, amounts, your own categories) and hands it to you as a file Excel opens with the right types already in place. The usual reason to need one: you're building a pivot table demo or testing an import routine, and the only real data you have is a customer list you are not allowed to share. So you need 2,500 orders that look like orders, from people who don't exist.
How to use the Excel random data generator
- Start from the default columns (ID, Name, Email, Company, Country, Order date, Amount) or change them. Each column has a heading and a type, with ↑ ↓ ✕ buttons to move or remove it. "+ Add a column" adds another, up to 25.
- Set each column's options: an ID's prefix, first number and padding; the earliest and latest date; the smallest and largest number; decimal places; the currency; or, for a category column, your values one per line or separated by commas.
- Type how many rows you want, from 1 to 10,000 (it starts at 100), and click Generate.
- Check the preview of the first 20 rows, then click "Download .xlsx" or "Download .csv". You get
random-data (xlsx.com).xlsx or random-data (xlsx.com).csv, and both hold the same rows as the preview.
The rows are made up in your browser. Nothing is uploaded, there is no sign-up, and 10,000 rows of 9 columns took about half a second in Chrome. Change any column or the row count and the result clears until you click Generate again. Click it again without changing anything and you get a fresh set.
What each column type produces
The generator has 15 column types. Everything in one row describes one made-up person in one place: the first name, last name, full name and email match, and the city sits in the country next to it.
| Column type | What you get |
|---|
| Sequential ID | Counts up from your first number. Prefix ID-, start 1, 4 digits gives ID-0001, ID-0002. No prefix and 0 digits gives a plain number. |
| First name, Last name, Full name | Drawn from 110 first names and 100 surnames from many countries, e.g. Kwame Anderson |
| Email | first.last@example.com in lower case, with accents and punctuation removed: Chloé O'Brien becomes chloe.obrien@example.com. No two emails in a set are the same; a repeated name gets a number (anna.lopez2@example.com). |
| Phone | (212) 555-0147 style: one of 15 US area codes and a number from 555-0100 to 555-0199 |
| Company | Two name parts plus a suffix such as Inc., LLC, Ltd, GmbH or Pty Ltd (or none), e.g. Lantern Trading LLC |
| City, Country | 64 real cities in 40 countries, always paired correctly (Edinburgh, United Kingdom) |
| Date in a range | Any day from the earliest to the latest date, both included. Default 1 Jan 2025 to 31 Dec 2026. |
| Whole number in a range | Any integer from smallest to largest, both included. Default 1 to 100. |
| Decimal in a range | Any number from smallest to largest, rounded to 0 to 6 places (default 2) |
| Currency amount | Default 10 to 1,000 US dollars, in any of 14 currencies. Yen has no decimals. |
| TRUE / FALSE | About half each, as real Excel booleans |
| Category from your list | One of your values, each with the same chance |
In the .xlsx, the data sits on one sheet named Data. The header row is bold, frozen so it stays in view as you scroll, and carries AutoFilter arrows, so you can sort and filter the moment it opens.
Why the dates and amounts arrive as real dates and numbers
Sample data that arrives as text is useless for the thing you wanted it for. A pivot table can't group a text date by month. SUM skips text without a warning, so a column of "$927.96" strings totals to 0. And a CSV date like 03/04/2026 leaves Excel guessing whether it means 3 April or March 4.
This generator writes typed cells. In the .xlsx, dates are real Excel dates shown as yyyy-mm-dd, numbers are numbers, currency amounts carry a number format with the symbol ($927.96) on top of a plain value, and TRUE/FALSE are booleans. We opened a 10,000-row file in Excel for Mac: every date and amount counted as a number, and TYPE() on a TRUE/FALSE cell returned 4, the code for a logical value.
The .csv takes a different route to the same result. It is UTF-8 with a byte-order mark and CRLF line endings, the same shape as Excel's own "CSV UTF-8" format. Dates are written year first, 2026-11-10, so there is no day/month order for Excel to get wrong, and amounts go out as plain 927.96 with no symbol to trip the number parser. If your Excel uses a comma as the decimal separator, take the .xlsx instead. Opened in Excel for Mac, all 10,000 dates and amounts came in as numbers and TRUE/FALSE as booleans. The currency formatting only exists in the .xlsx, so download that if you want the dollar signs.
Test data that can't reach a real person
Test an import routine or a mailing tool with fake addresses at gmail.com and one welcome email to a real stranger is all it takes. The same goes for random 10-digit phone numbers pushed into a CRM with an auto-dialler.
The generator avoids both. Every email ends in @example.com, a domain that RFC 2606 reserves for examples, so no generated address can belong to anyone. Phone numbers use 555-0100 to 555-0199, the block the North American Numbering Plan sets aside for films and fiction, so none can ring a real phone.
Emails are also unique within a set, which matters when your import treats email as the key and rejects duplicates. Phone numbers are not. There are only 1,500 possible (15 area codes times 100 line numbers), and each row picks one at random, so repeats turn up well before that. Don't use Phone as a key.
Doing it in Excel with formulas
Excel can make random data itself, and for a single column of numbers a formula is quicker than any generator. Two examples:
=RANDBETWEEN(DATE(2025,1,1),DATE(2026,12,31)) // a random date in 2025-2026; format the cells as dates or you see serial numbers
=INDEX(regions,RANDBETWEEN(1,ROWS(regions))) // a random value from a named range called regions
In Microsoft 365 and Excel 2021 or later, =RANDARRAY(500,1,1,100,TRUE) fills 500 rows with whole numbers from 1 to 100 in one formula. Our RAND and RANDBETWEEN article covers the rest.
Every one of these is volatile. They return new values after any edit anywhere in the workbook, after F9, and every time the file opens, so the pivot table you built on Monday shows different totals the next time you refresh it. To pin them down, copy the cells and use Home > Paste > Values (on Windows, Ctrl+Alt+V, V, Enter). The formulas are gone after that, so do it on a copy if you want to regenerate.
Formulas get harder once you want a name, an email that matches it and a city that fits the country, all on one row. That takes helper columns and text joins, and it is where the generator saves the most time. Its values are fixed the moment you download them: nothing in the file recalculates.
Limits
- Up to 10,000 rows and 25 columns per set. Ask for more and it says so in plain words, e.g. "20,000 rows is over the limit of 10,000."
- No street addresses, postcodes, gender, job titles or free text columns.
- Phone numbers are US-style only, and they repeat, so they can't serve as a unique key.
- Everything is evenly spread. Categories all get the same chance and numbers have no bell curve, so a chart of the amounts looks flat, not like real sales.
- Names aren't matched to the row's country, so a Tokyo row can belong to Anna Lopez.
- Two columns of the same person type (two First name columns, say) show the same value in each row.
- The output is values, not formulas, and comes as .xlsx or .csv only. There is no JSON or SQL output.
If your test needs JSON, download the .xlsx and run it through Excel to JSON: its numbers stay JSON numbers, TRUE/FALSE stay booleans and dates come out as ISO strings like 2026-03-04.
Questions
How do I stop random numbers from changing in Excel?
Replace the formulas with their values: select the cells, copy them, then use Home > Paste > Values (on Windows, Ctrl+Alt+V, then V, then Enter). RAND, RANDBETWEEN and RANDARRAY are volatile, so they return new numbers after every edit, every F9 and every time the file opens. Once pasted as values, the numbers stay put, but the formulas are gone.
How do I generate random dates in Excel?
Use RANDBETWEEN with two DATE functions, such as =RANDBETWEEN(DATE(2025,1,1),DATE(2026,12,31)), then format the cells as dates. Without the date format the cells show serial numbers like 46015. Paste the results as values if you don't want them to change on the next edit.
Are the generated emails and phone numbers safe to use in testing?
Yes. Every email ends in @example.com, a domain reserved for examples by RFC 2606, so no generated address can belong to a real person. Phone numbers fall in 555-0100 to 555-0199, the block the North American Numbering Plan keeps for fiction, so none of them can ring a real phone.
Can I generate the same dataset again later?
No. Each click of Generate makes a fresh set, so keep the downloaded file if you need the same rows again. Within one click, the preview, the .xlsx and the .csv all hold the same rows.
How do I get more than 10,000 rows of sample data?
Generate two sets and paste the second under the first, without its header row. Set the second run's first ID number to 10001 so the IDs carry on without clashing. Emails are unique within one set only, so a combined file can contain the same address twice.
Can it generate addresses or non-US names?
It has no street address or postcode column, but it does have City and Country, and the two always agree in a row. Names come from a list of 110 first names and 100 surnames from many countries. Phone numbers are US-style only.