csv · fake data · bulk · local

Generate mock CSV rows

Define your columns and pump out up to 5,000 fake CSV rows — names, emails, phones, dates, UUIDs, booleans, integers, decimals. Properly escaped, ready to download.

Mock CSV Rows Generator
Rows
—
4 cols
Output
0 B
empty
Columns
4
schema
Status
—
local
Rows:50
input · columns
output · csv (0)

Define columns then click Generate

Quick Start

How to generate mock CSV

Define columns (name + type), pick a row count, and the tool generates properly escaped CSV ready to drop into a seed script or import wizard.

  1. 01

    Edit columns

    Type a column name, pick a type — uuid, name, email, integer, decimal, date, boolean, phone.

    Inputs are treated as UTF-8 throughout the pipeline and validated client-side as you type — nothing dispatches until the value is well-formed.

    schemainpututf-8client-sidevalidated
    cols · text4 · set
    id, full_name, email, signup_date
    loaded · parsedclient-side
  2. 02

    Choose rows

    1 to 5,000 rows via the slider.

    Each toggle re-computes through a memoised hook, so flipping options never resets your input and the UI stays snappy on large inputs.

    countoptionslivememoisedtoggles
    rows · memoised50 · live
    50 fake rows
    options set · memoisedlive
  3. 03

    Generate

    CSV escapes commas, quotes, and newlines automatically.

    Randomness — where used — comes from crypto.getRandomValues, never Math.random. Heavy work sits in useMemo.

    bulkcomputeinstantlocaldeterministic
    out · instantcsv · computed
    Alice Smith,alice.smith@…
    computed · instantinstant
  4. 04

    Copy or download

    Grab as .csv or copy to clipboard.

    Copy writes through navigator.clipboard and downloads use a Blob — zero network traffic. Same input plus same options always yield the same bytes.

    exportcopydownloadzero-networkreproducible
    ✓ · copiedready · copied
    ✓ mock.csv
    shipped · ready to shipsuccess
Pro tips

Pro tips for everyday utilities

Reach for crypto.getRandomValues

Cryptographically random for IDs, tokens, salts. Math.random is for animation and games, not security.

Sort IDs lexicographically

UUID v4 has no time ordering. Use ULID or UUID v7 if you need sorted IDs.

Mock data with seeds

Faker-style libraries can be seeded so tests are reproducible. Embed the seed in the fixture file.

Reference cards beat memory

Cheatsheets for Vim, Git, Docker, Linux signals are faster than man pages when you’re mid-flow.

Browser APIs vary

Touch events, gamepads, and clipboard differ across vendors. Feature-detect before use.

Persist in the right place

localStorage for user preferences, sessionStorage for transient state, IndexedDB for structured data.

Use Cases

When to generate mock CSV

Seed data, import testing, demos.

Database seed

Bulk-insert fake rows for development. Random values come from crypto.getRandomValues — cryptographically secure for tokens, salts, and session IDs. Math.random is deterministic enough for animations but predictable enough to be a security bug.

CSPRNG-backed

Import-wizard QA

Stress test CSV upload paths with valid data. Pair with hashids, ULID, or UUID v7 when you need both random and sortable — useful for primary keys, public-facing IDs, and event log ordering without a sequence column.

reproducible

Spreadsheet demos

Drop into Excel or Sheets without real data. Output is deterministic given the same seed, so fixtures and tests stay reproducible across CI runs and contributor machines. Embed the seed in the fixture file for full replay.

snappy

ETL pipelines

Test parsers without exposing production rows. Heavy work runs through useMemo so the UI stays snappy on large inputs. Same input + same options yields identical bytes — the kind of stability snapshot tests rely on.

feature-detected

Load tests

Generate big files for throughput tests. Storage tools persist to the right backend: localStorage for user preferences, sessionStorage for transient state, IndexedDB for structured data. Pick the right shelf and quota worries disappear.

deterministic

Workshops

Hand attendees a clean dataset on the fly. Browser feature detection: clipboard, fullscreen, gamepad, and Web Bluetooth APIs gracefully fall back when unavailable. No surprise white screens on Safari or older Firefox.

production-ready
FAQ

Frequently asked questions

Values with commas, quotes, or newlines are wrapped in double quotes and embedded quotes are doubled — RFC 4180 style.
5,000 per generate. Use the SQL INSERT or JSON tools for different output shapes.
Yes — they come from crypto.getRandomValues with the v4 variant/version bits set.
Yes — pick from name, email, phone, integer, decimal, date, uuid, boolean.
No. All generation runs locally in your browser.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!