HandyBench

Mock Data Generator

Generate fake JSON or CSV test data.

How to use the Mock Data Generator

  1. 1 Tick the fields you need (name, email, city, and more).
  2. 2 Set the number of rows and the output format (JSON or CSV).
  3. 3 Click Generate and copy the data.

How the rows are built

The generator picks from 14 fields: id, uuid, firstName, lastName, fullName, email, username, phone, age, city, country, company, jobTitle and active. Each row is assembled from small built-in lists, so the values are plausible but obviously fictional. Related fields within a row agree with each other: a row with the first name Ava and last name Khan has fullName "Ava Khan" and an email beginning ava.khan.

FieldHow the value is made
idSequential: 1, 2, 3 and so on
uuidA random version 4 UUID from crypto.randomUUID()
emailfirst.last at example.com, example.org or example.net; a number is added (ava.khan2) if the address was already used in the run
usernameLower-case first name plus a number from 1 to 999, made unique within the run
phoneThe format +1-XXX-555-01YY: an area code from 201 to 989 and a number in the reserved fictional range 555-0100 to 555-0199
ageWhole number from 18 to 75
activetrue or false with equal odds

Worked example

Selecting id, fullName, email and city with 2 rows and the JSON format gives an array of two objects, shaped like this (the names, domains and cities differ every time):

[
  { "id": 1, "fullName": "Ava Khan", "email": "[email protected]", "city": "Lima" },
  { "id": 2, "fullName": "Leo Rossi", "email": "[email protected]", "city": "Berlin" }
]

Choosing CSV instead gives a header line id,fullName,email,city followed by one line per row. A value is wrapped in double quotes only when it contains a comma, a double quote or a line break. Columns always come out in the order of the checkbox list, not the order you ticked them. The row count is capped between 1 and 1,000.

Limits to plan around

  • It is random, not seeded. There is no seed option, so the same click never reproduces the same data. Save the output if you need a fixed fixture for a test.
  • Names repeat, emails and usernames do not. There are 50 first names and 50 last names, so only 2,500 distinct full names exist and a large run will repeat some. email and username are made unique within one run by adding a number when needed (ava.khan, ava.khan2, ...), so they are safe for a unique-constraint column. Separate runs can overlap, and id restarts at 1 each time.
  • Addresses are safe to use in tests. Every email uses example.com, example.org or example.net, domains reserved by RFC 2606 for documentation, so mail to them goes nowhere. They are still not real inboxes, so use them for display and database tests rather than sign-up flows that send a confirmation.
  • Phone numbers are fictional. They follow a US-style format and always end in 555-0100 to 555-0199, the range set aside for fiction. The area code is random.
  • Names and places are English-centric, with a few international entries, and every phone starts with +1 whatever the country.

For a single identifier, use the UUID generator. For filler prose rather than records, try the Lorem Ipsum generator, and paste the result into the JSON formatter or convert it to a table with JSON to CSV.

Examples

  • ▸ Seeding a database table with sample users.
  • ▸ Filling a UI prototype with realistic placeholder rows.

Frequently asked questions

Is the generated data real?

No. Names, emails and other values are randomly assembled from short built-in lists, so they are fictitious and suited to test fixtures. Emails use example.com, example.org or example.net, which are reserved for documentation, and phone numbers always fall in the fictional 555-0100 to 555-0199 range, so they cannot reach a real person.

Can I get the same data again?

No. There is no seed option and every click uses fresh random values. Copy and save the output if you need a fixed fixture for tests.

Will the rows contain duplicates?

Names can repeat in a large run (there are 50 first and 50 last names), but email and username values are made unique within a run by adding a number when needed, so they are safe for unique columns. The id field is always unique and sequential, and uuid values are random version 4 UUIDs.

What is the difference between the JSON and CSV output?

JSON gives an array of objects with typed values (numbers and true/false). CSV gives a header row of field names, then one line per record, and quotes a value only if it contains a comma, double quote or line break.

How many rows can I generate?

Up to 1,000 rows per run, generated instantly in your browser. Run it again for a fresh set.