Skip to content
UniKit

Mock data generator

Pick fields such as name, email, phone, address, company, date, UUID, integer, decimal, boolean, enum and auto ID, then generate test mock data in bulk and export it as JSON or CSV.

Runs in your browserEvery computation happens in your browser — your data never leaves this device.

Fields and row count

Randomness comes from the browser crypto.getRandomValues API; integer ranges use rejection sampling so no value is biased by the modulo operation. Everything is generated locally and never uploaded.

Tick the fields to generate; the output keeps this order.

Export format
1 – 500

Result

Tick some fields, set a row count, then press “Generate data”.

What this tool does

  • Build fixtures for a front-end list view: tick name, email, phone, address and company, generate a few dozen rows and paste them straight into a mock server or a component.
  • Prepare sample rows for a database import: combine auto ID with integer and enum fields to get structurally stable rows, then export JSON or CSV for sqlite, MySQL or Excel.
  • Keep demos and screenshots free of real data: addresses, companies and names are random combinations from a fixed word pool, so no real person is involved.
  • Exercise pagination and sorting UI: generate 200+ records and use the auto ID or date column to check paging, sorting and empty states.

Example

Input

Fields: Auto ID, Integer, Enum (active, pending, disabled)
Rows: 3
Format: JSON

Output

[
  {
    "id": 1,
    "integer": 542,
    "status": "pending"
  },
  {
    "id": 2,
    "integer": 941,
    "status": "active"
  },
  {
    "id": 3,
    "integer": 425,
    "status": "pending"
  }
]

The random fields come from crypto.getRandomValues and differ on every click; the output above is from a fixed random source. Only the field names and their order (id, integer, status) are deterministic.

Frequently asked questions

Why is the data different every time?

The random source is the browser-local crypto.getRandomValues, so every click draws new numbers and the result looks like real data. The auto ID is the exception: it is always 1, 2, 3, … and useful for checking row order.

How many rows and fields can I generate?

Rows go from 1 to 500 and you can select at most 12 fields — that is every field type shown in the UI. Anything outside those limits raises an error. Generate several batches and concatenate if you need more.

Will commas or quotes in the data break the CSV?

No. CSV output follows RFC 4180 escaping: a value containing a comma, a double quote or a newline is wrapped in quotes and inner quotes are doubled, so an address like "Beijing, Chaoyang" stays in one column.

How many decimal places are supported?

Two by default, and you can pick 0–6. Both decimals and integers accept custom min/max bounds, and for integers the bounds must themselves be integers or the range is rejected.

Is this fake data considered personal information?

No. Names, addresses and companies are random concatenations of hard-coded word pools, emails use reserved domains such as example.com, and phone numbers are random digits matching the local 11-digit rule. Everything is generated locally and never uploaded.

Keywords:mock datafake datatest data generatordummy datajson csv exportMock 数据测试数据假数据造数据随机数据生成导出 CSV

Related tools