Dummy Data Generator

Generate up to 100,000 rows of realistic fake data as CSV, JSON, NDJSON or SQL. Seeded and reproducible, 100% in your browser. No signup.

Runs in your browser

CSV · JSON · NDJSON · SQL — up to 100,000 rows, generated in your browser. Set a seed to get the same data every time.

Saved in this browser only — clearing site data or switching devices removes it. Use Export to keep a backup.

Presets

Columns

6 / 30 columns

Generation

Clamping moves the real mean and standard deviation away from μ and σ.

Some columns fell back to placeholder values.

ML options — distributions, correlation, target label, missing values
age 18.0 … 79.0

Chained correlation multiplies: corr(A, C) = ρ(A, B) × ρ(B, C).

Names, addresses and companies are fictional and may combine real place names.

Preview

First 20 rows
idnameemailagesignup_dateis_active
1sample_1coralranger36@example.com232021-03-03true
2sample_2storm2140@gmail.com182025-08-25true
3sample_3orbit3790@example.com222021-07-02true
4sample_4jolly3297@hotmail.com432023-03-14true
5sample_5query4288@gmail.com552022-07-17true
6sample_6modulelantern57@yahoo.com432020-03-08true
7sample_7pixelcloud9@yahoo.com362025-11-19true
8sample_8ottertoken2@yahoo.com262020-05-28true
9sample_9deltaharbor3@gmail.com522024-09-08true
10sample_10wittyhelix33@hotmail.com192022-02-12true
11sample_11river2473@outlook.com562025-02-13true
12sample_12violet8035@example.com342025-03-21true
13sample_13shade676@hotmail.com282023-09-02true
14sample_14jade4728@hotmail.com322021-11-24false
15sample_15cloudhalo12@yahoo.com402020-04-20true
16sample_16flint1444@example.com492021-06-02true
17sample_17wolfstone24@hotmail.com332025-06-10false
18sample_18halo1340@yahoo.com412023-10-25false
19sample_19scalar774@outlook.com272022-01-14true
20sample_20vector4769@hotmail.com382020-04-29true

∅ marks a missing value — the file itself uses the missing-value style below.

Output

The BOM is what stops Excel from garbling UTF-8 — leave it on for spreadsheets.

Estimated size: 5.44 KB · Runs in your browser

Values starting with = + - @ can be executed as formulas when opened in a spreadsheet.

Load it in pandas
import pandas as pd
df = pd.read_csv("dummy-data.csv")
df.head()

How to use

  1. Add columns and pick a data type for each.
  2. Set the row count and the language (English or Korean).
  3. Optional: open ML options for distributions, correlation, missing values and a target label.
  4. Choose a format and download or copy.
  5. Optional: set a seed and share the address bar — the other person gets the same data.

FAQ

Is the generated data sent to a server?

No. The schema, the seed and every generated row stay in your browser — there is no upload step and no API call. That matters more than it sounds: column names are often a sketch of an internal database design, and services that generate data on their servers see both the schema and the result.

How many rows can I generate for free?

Up to 100,000 rows, with no account. Tools that generate on a server usually stop at 1,000–10,000 rows because every row costs them CPU time; here the work happens on your machine, so the limit is only about keeping the page responsive.

Why is my Korean CSV garbled in Excel?

Excel does not auto-detect UTF-8 in a plain .csv file; it falls back to the system code page, which turns Korean into mojibake. A UTF-8 BOM at the start of the file tells Excel what the encoding is. The BOM option is on by default here, and it is added to CSV and TSV only — never to JSON, NDJSON or SQL, where it would break parsers.

Can I get exactly the same data again?

Yes — type a seed and share the address bar. The schema travels in the link too, so anyone opening it downloads a byte-identical file. Each column also has its own random stream, which means adding, removing or renaming a column leaves the other columns untouched.

Can I use this for machine-learning practice?

That is what the ML options are for: normal and log-normal distributions, a correlation ρ between numeric columns, per-column missing values, and a binary target label whose intercept is solved so the positive rate you ask for is the rate you get — label noise included. It covers most of what scikit-learn’s make_classification is used for, but with readable column names and a CSV you can open.

What is NDJSON (JSONL)?

One JSON object per line, with no wrapping array. It streams line by line, so it is the usual format for LLM fine-tuning datasets, BigQuery and Bag-style data loaders, and pandas reads it with pd.read_json(path, lines=True).

Related tools

More AI & Data tools: AI & Data

Send feedback

Found a bug or have an idea? Tell us — it helps make the tools better.

Only needed if you would like a reply.

Page: /ai/dummy-data-generator/