GenerateRandomSearch

Synthetic Test Data Generator

Pick the fields a record needs — UUID, name, email, telephone, address, dates, numbers, booleans, a status or your own fixed-choice list — set how many records you want, and get the whole set back as a table, JSON, CSV or ready-to-run SQL INSERT statements. Everything is built in your browser from deliberately fictional value banks.

How to use this tool

  1. Tick the fields each record should contain. The column order matches the list.
  2. Set the number of records, and choose a UK or North American formatting style for addresses and telephone numbers.
  3. Optionally ask for distinct values down a column, add a percentage of blank values, or enter a seed so the same settings always produce the same records.
  4. Choose an output format — table preview, JSON, CSV or SQL INSERT — then copy or download it.
  5. Press Regenerate for a fresh set, or change any setting and generate again.

Common use cases

  • Seeding a development or staging database without touching production data
  • Filling a UI prototype or demo with rows that look plausible in screenshots
  • Creating fixtures for automated tests, with a seed so runs stay reproducible
  • Exercising an importer or ETL job against blank values and awkward column mixes
  • Producing sample rows for documentation, tutorials or a bug report

Examples

Four fields, JSON output
{ "id": "9f1c2b0e-…", "full_name": "Cleo Fenwick", "email": "dara.oakley42@example.net", "status": "pending" }
SQL output
INSERT INTO test_records (id, full_name, email, status) VALUES ('9f1c2b0e-…', 'Cleo Fenwick', 'dara.oakley42@example.net', 'pending');
Reserved formats only
Telephone numbers come from Ofcom's 07700 900xxx / 020 7946 0xxx drama ranges or NANPA's 555-01xx range; addresses use the ZZ99 3CZ pseudo-postcode or an unassigned 00000 ZIP.

How this generator works

Each field type has its own generator function drawing from a fixed bank of invented values, and the record set is assembled column by column so a 'distinct values' request can be checked against everything already emitted for that column. Without a seed, every value comes from the browser's cryptographic random number generator. With a seed, the same values come from a small deterministic PRNG instead, so identical settings reproduce an identical file — useful for committed test fixtures, and the reason dates are drawn from a fixed 2020–2029 window rather than a window relative to today.

Limitations and good to know

  • The seeded mode uses a deterministic, non-cryptographic PRNG. It exists for reproducible fixtures and must never be used to produce anything security-sensitive.
  • Distinct values can only be guaranteed for types with a large value space — UUIDs, emails, timestamps and numeric ranges. Booleans and statuses will repeat, and the tool tells you when it could not honour the request.
  • The output is not referentially consistent: an email is not derived from the name in the same row, and there are no foreign keys between generated columns.
  • Records are capped at 500 per run, because everything is generated and held in the browser tab rather than streamed from a server.
  • Names are randomly recombined from generic given-name and surname banks, so a combination may coincidentally match a real person. Nothing else in the record will.

Every value is fictional by construction: RFC 2606 reserved email domains, regulator-reserved fictional telephone ranges, and non-deliverable addresses. There is no password, key or token field type. Do not treat generated records as real personal data, and do not use this output to impersonate a real person or organisation.

Frequently asked questions

Is any of this data real?
No. Email addresses only ever use the RFC 2606 reserved domains (example.com, example.net, example.org, example.test), telephone numbers only use ranges regulators reserve for drama and fiction, and addresses combine invented streets and towns with a pseudo-postcode that cannot be delivered to. Names are randomly recombined from generic name banks and are not taken from any real person.
Does it send my data anywhere?
No. The whole dataset is generated in your browser with JavaScript. Nothing you configure and nothing that is generated is uploaded, stored or logged.
How does the seed option work?
Type any text into the seed box and the tool switches from the browser's cryptographic random number generator to a deterministic one derived from that text. The same seed with the same field selection, record count and options will reproduce exactly the same records every time, which is what you want for a fixture file you commit alongside your tests.
Can I generate test passwords or API keys with it?
Not here, by design. This tool has no credential field type, so it can never hand you something that looks like a usable secret. Use the dedicated password, passphrase, API key and token generators for that.
What is the blank-value option for?
It sets the chance that any one cell comes back empty (null in JSON and SQL, an empty CSV cell), so you can check how an importer, a UI or a validation layer copes with missing data. Columns you have asked to be distinct are never blanked.
How is this different from the CSV and JSON sample generators?
Those tools each hand you one small fixed-shape sample to copy. This one takes a schema you define and produces as many records as you ask for in whichever of four formats you need, with uniqueness, blank-rate and seeding controls on top.