🎲 Random Data Generator

🧱 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, with from/to options), iso_datetime (full UTC ISO 8601).
  • Identifiers: uuid (RFC 9562 v4 with version and variant nibbles set).
  • Numbers: integer (min/max options), float (min/max/decimals), boolean.
  • Categorical: enum with values array.
  • Text: word, sentence, paragraph (lorem ipsum).

Randomness source

  • Default (no seed): crypto.getRandomValues — the platform CSPRNG exposed through Web Crypto (browser) and Node's webcrypto (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/max must fit in 32 bits.
  • float.decimals: 0 to 15.
  • iso_date/iso_datetime dates use UTC and must match yyyy-mm-dd.

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"
}
Ready