Random Data Generator — Free Fake Test Data Generator | CSV, JSON, SQL | LazyTools
🎲 Random Data Generator

Random Data Generator — Free Fake Test Data, CSV, JSON & SQL

Build a custom schema with 25 field types, generate up to 2,000 rows of realistic fake data, and export as CSV, JSON, SQL INSERT, or TSV. Live 5-row preview. Seed control for reproducible datasets. Preset schemas for instant start. Free, no signup, runs entirely in your browser.

25 field types Up to 2,000 rows CSV, JSON, SQL, TSV Live preview Seed control
ADSENSE — 728×90 LEADERBOARD
🎲 Random Data Generator

Configure your schema — live preview updates instantly

Add columns, choose field types, set row count, then click Generate. All data is created in your browser.

Preset Schemas
Settings
Rows (max 2000)
Seed (optional)
Export format
Columns
Live Preview (first 5 rows)
📋
Add columns to see a preview
ADSENSE — 728×90 LEADERBOARD
✉️
Need fake email addresses for your test data?
The free Random Email Generator generates up to 10,000 unique fake email addresses with custom domains, name formats, and export as TXT, CSV, or JSON.
✉️ Email Generator →
⭐ User Ratings

Rate this tool

4.9
★★★★★
Based on 14,800 ratings
5
13,764
4
592
3
296
2
148
1
0
Did this tool save you development time?
Thank you for your rating!
✔ Key Features

The most complete free random data generator online

🔢
25 Field Types
First Name, Last Name, Full Name, Email, Phone, Address, City, State, ZIP, Country, Company, Job Title, Date, Integer, Float, UUID, IPv4, Boolean, Enum, URL, Username, Password, Lorem Ipsum, Color Hex, Auto-Increment.
Live 5-Row Preview
The preview table updates instantly as you add columns and change types — before you click Generate. See exactly what your data will look like without waiting for a full generation run.
📦
4 Export Formats
CSV (UTF-8 BOM for Excel compatibility), JSON array, SQL INSERT statements with custom table name, and TSV. Download as a file or copy to clipboard.
🌱
Seed Control
Enter a seed number to get reproducible output. The same seed always generates the same dataset — essential for stable test fixtures that need to be consistent across test runs.
🎯
Null Percentage
Set a null % per column to make a realistic proportion of values blank. Real-world databases rarely have 100% complete records — missing values make your test data more accurate.
📋
Preset Schemas
One-click preset schemas: User Profile, E-commerce Orders, Blog Posts, and Employees. Load a full multi-column schema instantly and customise from there.
📊
Up to 2,000 Rows Free
Generate up to 2,000 rows per run, completely free with no account. Mockaroo caps free users at 1,000 rows. GenerateData.com caps at 500. LazyTools gives the highest free row count.
🔧
Per-Type Options
Each field type shows relevant controls: date fields have min/max date range; number fields have min/max and decimal places; enum fields have a custom value list; lorem ipsum fields have word count control.
🔓
Free, No Account
100% free with no signup, no account, and no watermarks. All data generation happens in your browser. Your data never leaves your device.
📖 How to Use

How to generate fake test data in 6 steps

1
Choose a preset or start fresh
Click a preset schema (User Profile, Orders, Blog Posts, Employees) to instantly load a full multi-column schema. Or click Add Column to build from scratch.
2
Configure each column
Name each column, choose a field type, and set per-type options (date range, number range, enum values, null percentage). The live preview updates instantly.
3
Set row count and seed
Enter how many rows you need (up to 2,000). Optionally enter a seed number to get reproducible output every time you generate with the same settings.
4
Choose export format
Select CSV (for Excel or database import), JSON array (for APIs), SQL INSERT (for databases), or TSV (tab-separated). For SQL, also set the table name.
5
Click Generate
All rows are generated instantly in your browser. The full output appears in the dark code panel below the preview. Stats show total rows, columns, and cells generated.
6
Download or copy
Click Download to save the file with the correct extension (.csv, .json, .sql, .tsv). Click Copy to copy the full output to clipboard for direct pasting.
📊 Competitor Comparison

LazyTools vs other free random data generators

We compared the top free online random data generators. LazyTools offers the highest free row count, live preview, seed control, and null percentage — all without an account.

Feature LazyTools Mockaroo GenerateData WuTools DevToolLab
Free row limit 2,000 rows 1,000 rows 500 rows 1,000 rows 1,000 rows
Account required ✅ Never ❌ To save schemas ❌ To save schemas ✅ No ✅ No
Live preview ✅ 5-row instant ❌ No preview ❌ No preview ❌ No preview ❌ No preview
Seed / reproducible output ✅ Yes ❌ No ❌ No ❌ No ❌ No
Null % per column ✅ Yes ✅ Yes (paid+) ✅ Yes ❌ No ❌ No
Preset schemas ✅ 4 presets ❌ No presets ❌ No presets ❌ No presets ❌ No presets
CSV export ✅ UTF-8 BOM ✅ Yes ✅ Yes ✅ Yes ✅ Yes
JSON export ✅ Array format ✅ Yes ✅ Yes ✅ Yes ✅ Yes
SQL INSERT export ✅ Custom table name ✅ Yes ✅ Yes ✅ Yes ❌ No
TSV export ✅ Yes ❌ No ❌ No ❌ No ❌ No
100% browser-based ✅ Yes ❌ Server-side ❌ Server-side ✅ Yes ✅ Yes
📋 Field Type Reference

All 25 field types — descriptions and examples

Field TypeDescriptionExample OutputOptions
Auto-IncrementSequential integer starting from a base value1, 2, 3, 4...Start value
First NameRandom common first nameJames, Mary, LindaNull %
Last NameRandom common last nameSmith, Jones, GarciaNull %
Full NameFirst + Last name combinedJames SmithNull %
EmailRealistic email from name componentsjames.smith@gmail.comNull %
PhoneUS-format phone number(555) 123-4567Null %
Street AddressNumber + street name4775 Oak AveNull %
CityUS city nameChicago, HoustonNull %
StateUS state abbreviationNY, CA, TXNull %
ZIP Code5-digit US postal code90210, 10001Null %
CountryCountry nameUnited States, CanadaNull %
CompanyFictional company nameAcme Corp, HooliNull %
Job TitleCommon job titleSoftware Engineer, DesignerNull %
DateISO date within a configurable range1990-07-15Min date, Max date
IntegerRandom whole number in a range42, 819, 7Min, Max
FloatRandom decimal number3.14, 99.99, 0.75Min, Max, Decimals
UUIDRFC 4122-style unique identifier8a907d09-0402-c802-...Null %
IPv4 AddressRandom IPv4 address192.168.1.42Null %
Booleantrue or falsetrue, falseNull %
Enum / ListRandom value from a custom listactive, inactive, pendingComma-separated values
URLRealistic-looking URLhttps://example.com/pathNull %
UsernameLowercase username stringjames_smith42Null %
Password HashBcrypt-style hash placeholder$2b$10$abc...xyzNull %
Lorem IpsumPlaceholder text words/sentencelorem ipsum dolor sit...Word count
Color HexRandom hex colour code#a3f4c1, #2d78e9Null %
📐 Test Data Guide

Random Data Generator Guide — Fake Test Data for Development & Testing

Every software application needs data to test against. Using real production data in development and testing environments creates serious privacy and compliance risks — real names, email addresses, and personal details have no place in a developer's laptop or a staging server. Random data generators solve this problem by creating realistic-looking but entirely fictional datasets that match the structure, format, and variety of real data without containing any information about real people.

What is fake data and why do developers need it?

Fake data (also called mock data, dummy data, test data, or synthetic data) is randomly generated information that looks like real data but is entirely fabricated. Developers and QA engineers use it to test application logic, populate development databases, create UI prototypes, run performance load tests, and build convincing demos without exposing real user data. A dataset of 1,000 rows with realistic names, email addresses, addresses, and order dates behaves exactly like real data in a test environment, revealing edge cases, performance bottlenecks, and rendering bugs that would never appear with a handful of hand-crafted test records.

How to generate random names for testing

The LazyTools Random Data Generator provides three name field types: First Name, Last Name, and Full Name. First Name and Last Name can be used as separate columns when you need to sort or filter by either part independently — essential for database schemas that store names in separate fields. Full Name combines both into a single column for display-only contexts. Names are drawn from pools of common English first and last names, providing realistic variety without repeating the same few values. For email addresses that correspond to the generated names, the Email field type generates email addresses derived from the same first and last name data — producing realistic combinations like james.smith@gmail.com or j.miller42@yahoo.com.

Generating realistic addresses and location data

Location test data is particularly tricky to create manually because each component (street number, street name, city, state, ZIP) needs to be individually plausible and somewhat internally consistent. The Street Address, City, State, and ZIP Code field types each generate realistic US-format values. For databases that store address components separately, use individual columns for each. For applications that display full addresses, combine them into a computed column or use the Street Address type for the street portion and City/State/ZIP for the remaining components. Country data is useful for international applications that need to test locale-specific display logic.

UUID generation for database primary keys

UUIDs (Universally Unique Identifiers) are 128-bit identifiers used as primary keys in modern databases to avoid integer overflow, enable distributed systems without coordination, and prevent sequential ID enumeration attacks. The UUID field type generates RFC 4122-style identifiers in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. These are appropriate for use as primary key values in test INSERT statements. For numeric auto-incrementing IDs, use the Auto-Increment type instead, which generates sequential integers starting from a configurable base value.

Exporting test data as SQL INSERT statements

The SQL INSERT export format generates a complete INSERT INTO statement that can be pasted directly into any SQL console — MySQL, PostgreSQL, SQLite, SQL Server, and Oracle all accept standard INSERT syntax. String values are properly single-quoted with internal single quotes escaped by doubling. Numeric values (integers and floats) are left unquoted. Null values are rendered as SQL NULL. To use the SQL export, select the SQL INSERT format, enter your table name in the table name field, and click Generate. The output includes the full INSERT with all rows as a VALUES list, ready to execute. This is significantly faster than writing INSERT statements by hand for 100+ rows of test data.

Using seeds for reproducible test data

A seed is a starting number for the pseudo-random number generator (PRNG). The same seed always produces the same sequence of random values. This makes the generator deterministic and reproducible — a critical property for test fixtures. When you need stable test data that is consistent across test runs (for example, snapshot tests, regression tests, or shared QA environments), enter a seed number before generating. Seed 42 will always produce the same 1,000 rows from the same schema, regardless of when or where you generate. Without a seed, the generator uses a random starting value so each run produces different data. Both modes are appropriate depending on whether you need reproducibility or variety.

Setting null percentage for realistic test data

Real-world databases are never 100% complete. Email addresses are missing for some contacts. Phone numbers are blank for some customers. Optional profile fields like job title or company are absent for many users. The null percentage option per column simulates this reality by leaving a configurable proportion of values blank. Setting null % to 20 means approximately 1 in 5 values for that column will be empty. This is essential for testing how your application handles missing data — does it display a fallback, throw a null pointer error, or silently omit the field? Testing with null-containing data surfaces these bugs early, before they reach production.

❓ FAQ

Random data generator — 10 questions answered

A random data generator creates realistic-looking but entirely fictional data for software testing, database seeding, UI prototyping, and demos. Instead of using real user data (which creates privacy risks), developers use randomly generated fake data with the same structure and format as real data. Examples include fake names, emails, phone numbers, UUIDs, dates, and addresses.

Fake data is used for: testing applications without exposing real user data; populating development and staging databases; creating UI prototypes and demos; load and performance testing with large datasets; training machine learning models; and filling out demo presentations with realistic-looking content. It ensures GDPR and data privacy compliance in non-production environments.

Add a column and select First Name, Last Name, or Full Name as the field type. Set the row count and click Generate. The tool generates realistic names from common name pools. Use separate First Name and Last Name columns for relational databases, or Full Name for display-only contexts.

Yes. Select CSV as the export format and click Download. The file uses UTF-8 encoding with a BOM for Excel compatibility. The first row contains column headers. Fields containing commas or quotes are properly quoted. You can also export as JSON array, SQL INSERT, or TSV.

Yes. Select SQL INSERT, enter your table name, and click Generate. The output is a complete INSERT INTO statement with all rows as VALUES tuples. Strings are single-quoted, numbers are unquoted, nulls render as SQL NULL. Ready to paste into MySQL, PostgreSQL, SQLite, or SQL Server.

A seed is a starting value for the random number generator. The same seed always produces the same dataset. This is essential for test fixtures that must be consistent across runs. For example, seed 42 always generates the same 1,000 rows from the same schema. Without a seed, each run produces different data.

Up to 2,000 rows per run, completely free with no account required. Mockaroo limits free users to 1,000 rows. GenerateData.com limits to 500 rows. LazyTools offers the highest free row limit of any web-based random data generator.

CSV is best for Excel, Google Sheets, and database imports. JSON array is ideal for JavaScript apps and APIs. SQL INSERT generates ready-to-run database statements. TSV (tab-separated) is used by tools that have issues with comma-separated data. All four formats include all columns and rows.

Yes. Each column has a Null % field. Setting it to 20 means approximately 20% of values in that column will be blank (null). Real-world databases rarely have 100% complete records — null percentages make your test data more realistic and expose how your application handles missing values.

LazyTools Random Data Generator is 100% free with no signup, no account, and no limits beyond the 2,000-row cap. Configure your schema, generate up to 2,000 rows, and export as CSV, JSON, SQL, or TSV without creating an account. All generation happens in your browser.