Skip to content
Free Tool Arena

Developer Utilities · Free tool

Mock Data Generator

Generate realistic fake JSON data including users, emails, phones, and addresses. Perfect for testing, demos, and seeding databases instantly in your browser.

Updated June 2026
Fields
Found this useful?EmailBuy Me a Coffee

Advertisement

What it does

Generate realistic-looking fake data rows — names, emails, addresses, phone numbers, company names, dates, UUIDs, and more — and export as JSON, CSV, or SQL INSERT statements. The classic use case is seeding a test database with hundreds or thousands of plausible records so your app behaves like it would in production. Other uses: populating UI mockups with realistic data for design reviews, creating training datasets for tutorials and demos, load-testing fixtures, and filling spreadsheets for screenshots where you don't want to expose real customer data.

Pick the columns you want (name, email, company, date, phone, address, country, integer, decimal, UUID, boolean, enum-from-list, lorem-ipsum), specify row count up to ~10,000 (browser memory limits beyond that), and choose your output format. The names, companies, and addresses are realistic-looking — drawn from public-domain US census name lists and Fortune-500 company roots — but completely fake. None match real people; collisions with actual people are coincidental and rare.

Generation runs entirely in your browser as plain JavaScript — no API call, no quota, no signup. Output is deterministic per session if you set a seed (useful for reproducible test fixtures); random by default.

Embed this tool on your siteShow snippet

Paste this snippet into any page. Loads on-demand (lazy), no tracking scripts, and sized to most dashboards. Replace the height to fit your layout.

<iframe src="https://freetoolarena.com/embed/mock-data-generator" width="100%" height="720" frameborder="0" loading="lazy" title="Mock Data Generator" style="border:1px solid #e2e8f0;border-radius:12px;max-width:720px;"></iframe>
Embed docs →

Example input & output

Input

Columns: name, email, company; rows: 3; format: JSON

Output

[
  {"name": "Margaret Chen", "email": "mchen@northwoods.com", "company": "Northwoods Logistics"},
  {"name": "David Patel", "email": "dpatel@kestrelapp.io", "company": "Kestrel App"},
  {"name": "Sara Johansson", "email": "sara.j@bluecedar.co", "company": "Blue Cedar Coffee"}
]

Names are drawn from public-domain US Social Security and Census name lists. Email and company stems are constructed plausibly but don't correspond to real registered domains.

How to use it

  1. Add the columns you want by clicking + Add column. Pick a type from the dropdown for each (name, email, company, date, integer, etc.).
  2. Set the row count (1 to 10,000). Larger sets work but generation slows linearly.
  3. Pick the output format: JSON (objects in an array), CSV (with header row), or SQL (INSERT INTO table_name VALUES …).
  4. Click Generate. Output appears in the box below.
  5. Click Copy to put it on your clipboard, or Download to save as a .json/.csv/.sql file.

When to use this tool

  • Seeding a development or staging database with realistic test data.
  • Filling UI mockups with fake names/companies for design reviews instead of "User 1", "User 2".
  • Generating fixture data for unit and integration tests.
  • Creating training datasets for tutorials, blog posts, or YouTube videos that need data on screen.
  • Replacing real customer data in screenshots or sample exports before sharing externally.

When not to use it

  • Cryptographically secure random data (passwords, tokens) — use a CSPRNG-backed tool like password-generator. The data here looks random enough for tests but isn't designed for security.
  • Performance benchmarks where realistic distributions matter — generated values are uniformly random, which doesn't match real user data (most distributions are long-tailed).
  • Anything requiring referential integrity (orders linked to customers) — the tool generates flat tables only. For relational fixtures use Faker.js or a code-based generator with relationships.
  • GDPR/CCPA edge cases — even fake data containing names that happen to match real people can be sensitive in some contexts. Use UUIDs or numbered identifiers if that's a concern.

Frequently asked questions

Are these real people?
No. The names are drawn from public-domain US Census/SSA name lists and combined randomly. Any apparent match to a real person is coincidence and statistically rare. Email addresses use plausible-looking but unregistered domains; companies are constructed from common word combinations. None of this data should be treated as identifying any actual individual.
How realistic are the addresses?
Realistic-looking but fictional. Street names are randomly combined with US-style city/state/zip combinations that match real geographic patterns (e.g. valid zip-code ranges by state) but aren't necessarily real addresses. Don't use them to test address-validation services that hit a real address API — many will reject them.
Can I get reproducible output for tests?
Yes — set a seed value before generating. The same seed + same column config + same row count produces byte-identical output every time. Useful for fixtures you commit alongside tests so CI runs match local runs.
What's the maximum row count?
Soft cap is ~10,000. Beyond that, browser memory becomes a bottleneck and the UI may freeze for several seconds. For larger datasets, run a code-based generator like Faker.js (Node.js) which can stream millions of rows efficiently.
Why doesn't it generate distributions like a Poisson age curve or a Pareto income?
All numeric and categorical generators here are uniformly random — equal probability across the range. Real-world data is rarely uniform; for distribution-realistic data use a tool with explicit statistical distributions (Faker.js with custom logic, or R/Python directly).
Does it work for non-English data?
Names and addresses are US/English biased. The library doesn't yet have locale-specific Spanish, French, Japanese, etc. name pools. For internationally-realistic mock data, use Faker.js which supports 70+ locales.

Advertisement

Learn more

Explore more developer utilities tools

100% in-browserNo downloadsNo sign-upMalware-freeHow we keep this safe →

Found this useful?

The tools stay free thanks to readers who chip in or spread the word.

Buy Me a Coffee