Fake data generator

Ten rows of test data are ready — change a setting and the output follows.

10

Same seed + same settings = the same data.

How to use it

  1. The page opens with ten rows of CSV already made — the header row is included, so the text can go straight into a fixture, a spreadsheet or a database import.
  2. Set the row count (1–200), pick CSV, JSON or SQL, and tick the fields you need. Everything is rebuilt as you change it; switching the format re-serialises the same rows instead of generating new ones.
  3. Choose the data language — English, 简体中文 or العربية — independently of the interface language. Names, companies and city/country pairs follow that choice, while field keys, ISO dates and SQL syntax stay fixed.
  4. Add a seed when the same data has to survive a rerun: the same seed, rows, fields and data language always give the same batch. Copy or download it when it looks right — nothing is uploaded, saved or put into the URL.

Example

Settings

10 rows · CSV · English · id, name, email, phone, city, country

One possible result

id,name,email,phone,city,country
1,Olivia Bennett,olivia.bennett@example.com,1-202-555-0142,New York,United States
2,Liam Carter,liam.carter@example.net,1-202-555-0107,London,United Kingdom
3,Emma Collins,emma.collins@example.org,1-202-555-0164,Toronto,Canada
…

Values are random, so yours will differ. Check the header keys, the ids running 1–10, and that every email ends in example.com, example.net or example.org. Switching to JSON or SQL re-serialises these same rows rather than making new ones.

Rules, limits and known issues

  • Every value is fictional. Names, companies and cities come from small hand-written word lists; any resemblance to real people or organisations is accidental.
  • Emails use the reserved domains example.com, example.net and example.org (RFC 2606): they are unique within one batch but can never receive mail, and a new batch may repeat an address.
  • Phone numbers are format samples, not assigned numbers. North American values sit in the 555-0100–0199 fiction range; Chinese and Arabic values use zero-padded blocks. The pattern follows the data language only, not the city or country in the same row. Some countries have no reserved range, so a generated number may still exist — do not call or text it.
  • Locations are a city plus a country only: no street, postal code or coordinates. The city and country in one row always come from the same pair, but they are not a deliverable address.
  • CSV always has a header row, LF line endings and no BOM. Older Excel versions may garble non-ASCII CSV on double-click; import it as UTF-8 instead, or use JSON.
  • Machine-readable syntax never follows the interface language: field keys (id, name, email…), ISO dates, dot decimals and the fake_data SQL table name stay the same in every language, so the output can be imported directly.
  • There are only ten fixed fields. Custom field names, types, blank rates, reordering, foreign keys and uniqueness constraints are not supported; names and phones may repeat, only emails are de-duplicated within a batch.
  • Randomness is not secure: seeds use a non-cryptographic hash with mulberry32, and UUIDs are only v4-shaped. Do not use them for passwords, tokens, keys or anything that must be unpredictable.
  • Reproducibility needs the whole set of settings: same seed, same row count, same fields and same data language. The format does not take part in the random draw, so you can switch CSV, JSON and SQL freely.
  • The row limit is 200 per generation, chosen so the result still fits a fixed-height panel and updates instantly. Larger datasets need several batches or a script.
  • There is no history, undo or save. Reloading discards everything; the seed is the only way back. Nothing is uploaded, stored in localStorage or written into the URL.

Once the fixture is in place, these usually help next.