Sample CSV (Dummy Data) Generator
Define column names and types (sequential ID, full name, email, date, numbers, and more) to instantly generate and download dummy CSV data for testing and QA.
Supported Data Types
| Type | Example output |
|---|---|
| Sequential ID | 1, 2, 3, ... or a prefixed sequence like USR-0001 |
| Full Name | Fictional names mixing Japanese and Western styles, e.g. Taro Yamada, Emma Smith |
| Email Address | [email protected] (derived automatically from the generated name) |
| Phone Number | A Japanese mobile-style format such as 090-1234-5678 |
| Date | A random date within your chosen range, formatted as YYYY-MM-DD |
| Integer | A random whole number within your chosen min/max range |
| Decimal (price, etc.) | A random decimal within your chosen range, rounded to 2 places |
| Boolean | true/false (labels can be customized) |
| Free Text | A word-salad sentence such as "Lorem ipsum dolor sit amet." |
Generating sample CSV data
Development and testing call for **data that looks the part.** Using production data as it stands should be avoided where personal information is involved, and writing even ten rows by hand is tedious. Specify the column names and their types here and this tool generates a dummy CSV for testing and quality assurance, ready to download on the spot.
**Being able to specify a type is the point of the tool.** A file filled with the same string everywhere tests neither sorting nor searching. Because you can choose sequential identifiers, names, email addresses, dates and numbers column by column, you get **a file whose distribution resembles real data.** Everything is generated in your browser and nothing is sent to a server. The names and addresses produced are fictitious and bear no relation to any real person.
How to generate a dummy CSV
- Define the columns Add as many pairs of column name and data type as you need.
- Choose the data type Pick from sequential identifier, name, email, date, number and others. **Each column can take a different type.**
- Set the options Some types let you specify a range or a format in more detail.
- Specify the row count Enter as many rows as you need.
- Download the file The generated CSV is ready to use as test data as it stands.
Tips for getting more out of it
- Enter any number in the seed field to reproduce the exact same dummy data every time from the same column definitions — handy when sharing a bug report or a fixture for automated tests.
- The generated CSV follows RFC 4180: values containing commas, line breaks, or double quotes are quoted and escaped correctly.
- The email column is automatically derived from a full-name column placed before it in the same row, so pairing the two produces internally consistent data.
- Everything runs entirely in your browser and nothing is ever sent to a server — it's completely fabricated data with no real personal information.
- Row counts are capped at 10,000 to keep the browser responsive. If you need more, fix the seed and generate in batches, then merge the files.
Where this helps
Testing an import feature
**It removes the need to use production data**, avoiding the risk that comes with handling personal information.
Checking a layout under pressure
See whether the display holds up against long names and unusual characters.
Measuring performance
Generating a larger row count lets you time how the system handles bulk data.
Preparing a demonstration environment
Populate the screens you will show in a sales meeting or a review with data that looks right.
Test data terms explained
- Dummy data
- Data created for testing rather than drawn from reality. **The values are fictitious and unrelated to any real person.**
- CSV
- A comma-separated text format that most spreadsheets and databases can read.
- Sequential identifier
- An integer counting up from one, often used in place of a primary key.
- Boundary values
- Values at the edges — maximum length, minimum number — where defects tend to appear. **Prepare these separately; dummy data alone will not cover them.**
- Masking
- Obscuring parts of production data so it can be used. It is an alternative to generating dummy data rather than a variant of it.
- Character encoding
- Confusing UTF-8 with Shift_JIS is the principal cause of garbled text in CSV files.
Frequently Asked Questions
Side Note — Why testing needs "seeded" dummy data
Using dummy data instead of real records is standard practice in software development, for two main reasons: protecting personal information (avoiding real customer data in development or test environments), and being able to freely craft edge cases and unusual inputs on demand. This is exactly why libraries like Ruby's Faker, Python's Faker, and JavaScript's @faker-js/faker are so widely used.
Purely random dummy data, however, has one weakness: it is not reproducible. When a test fails intermittently, it becomes hard to tell whether the cause is a genuine logic bug or simply an unlucky, unusual value that happened to be generated that time. A seeded pseudo-random number generator (PRNG) solves this: given the same seed, it produces the exact same sequence of numbers — and therefore the exact same dummy data — every single time, making bugs far easier to reproduce and test results easier to verify.
This tool uses mulberry32, an algorithm that produces good-quality pseudo-random sequences with very little computation, and is a popular lightweight choice in JavaScript. It is not suitable for cryptographic use, but it is exactly the kind of algorithm you want for test-data generation, where being deterministic and fast matters far more than cryptographic unpredictability.