🧱 Fields
Up to 50 fields. The options column accepts JSON: integer & float
take { "min": …, "max": …, "decimals": … }; enum takes
{ "values": ["A","B","C"] }; iso_date/iso_datetime take
{ "from": "2020-01-01", "to": "2024-12-31" }.
📊 How many records
1 ≤ count ≤ 1,000.
📄 Output format
🔁 Seed (optional)
⚠️ When a seed is set, output is deterministic via xoshiro128**. This is NOT cryptographically secure — never use seeded output for tokens, salts, keys, IVs, or nonces.
📤 Output ({{ format.toUpperCase() }})
ℹ️ About Random Data Generator
Generate plausible synthetic data on demand
This tool produces synthetic records for testing, fixtures, demos, and seeding databases. Each record is a row with one or more fields you configure: real-looking names, emails, phone numbers in NANP format, US/Canadian/UK/AU/EU/Asian/Brazilian city & state pairs with matching ZIP/postal codes, ISO 8601 dates and date-times, RFC 9562 UUIDs, integers, floats, booleans, enums, and lorem-ipsum words / sentences / paragraphs.
Choose the output format that fits your pipeline. JSON gives a pretty-printed array. NDJSON emits one JSON object per line for streaming consumers. CSV follows RFC 4180 with header row and double-quote escaping. TSV is tab-separated for spreadsheet imports.
Supported field types
- Identity:
first_name,last_name,full_name,email,phone,company. - Address:
street_address,city,state,zip,country,country_code. - Time:
iso_date(yyyy-mm-dd, withfrom/tooptions),iso_datetime(full UTC ISO 8601). - Identifiers:
uuid(RFC 9562 v4 with version and variant nibbles set). - Numbers:
integer(min/maxoptions),float(min/max/decimals),boolean. - Categorical:
enumwithvaluesarray. - Text:
word,sentence,paragraph(lorem ipsum).
Randomness source
- Default (no seed):
crypto.getRandomValues— the platform CSPRNG exposed through Web Crypto (browser) and Node'swebcrypto(server). Output cannot be reproduced. - Seeded mode: the seed string is mixed into a 128-bit state with a four-lane MurmurHash3 finaliser, then expanded through xoshiro128** (Blackman & Vigna). Same seed + same field list + same count + same format = byte-identical output.
- Security note: seeded mode is NOT cryptographically secure. Use it for fixtures and reproducibility only — never for tokens, passwords, salts, IVs, or anything an attacker should not be able to predict.
Bounds
count: 1 to 1,000 records per request.- Up to 50 fields per record. Each field name must be unique.
integer.min/maxmust fit in 32 bits.float.decimals: 0 to 15.iso_date/iso_datetimedates use UTC and must matchyyyy-mm-dd.
Source references
- RFC 4180 — Common Format and MIME Type for CSV Files.
- RFC 9562 — UUIDs (defines v4).
- NDJSON specification (newline-delimited JSON).
- ISO 8601 — Date and time format.
- prng.di.unimi.it — xoshiro / xoroshiro generators (seeded mode PRNG).
API Usage Example:
POST /api/tools/data/random-data-generator
Content-Type: application/json
{
"fields": [
{
"name": "id",
"type": "uuid"
},
{
"name": "name",
"type": "full_name"
},
{
"name": "email",
"type": "email"
}
],
"count": 10,
"format": "json"
}