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.
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.
Rate this tool
The most complete free random data generator online
How to generate fake test data in 6 steps
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 |
All 25 field types — descriptions and examples
| Field Type | Description | Example Output | Options |
|---|---|---|---|
| Auto-Increment | Sequential integer starting from a base value | 1, 2, 3, 4... | Start value |
| First Name | Random common first name | James, Mary, Linda | Null % |
| Last Name | Random common last name | Smith, Jones, Garcia | Null % |
| Full Name | First + Last name combined | James Smith | Null % |
| Realistic email from name components | james.smith@gmail.com | Null % | |
| Phone | US-format phone number | (555) 123-4567 | Null % |
| Street Address | Number + street name | 4775 Oak Ave | Null % |
| City | US city name | Chicago, Houston | Null % |
| State | US state abbreviation | NY, CA, TX | Null % |
| ZIP Code | 5-digit US postal code | 90210, 10001 | Null % |
| Country | Country name | United States, Canada | Null % |
| Company | Fictional company name | Acme Corp, Hooli | Null % |
| Job Title | Common job title | Software Engineer, Designer | Null % |
| Date | ISO date within a configurable range | 1990-07-15 | Min date, Max date |
| Integer | Random whole number in a range | 42, 819, 7 | Min, Max |
| Float | Random decimal number | 3.14, 99.99, 0.75 | Min, Max, Decimals |
| UUID | RFC 4122-style unique identifier | 8a907d09-0402-c802-... | Null % |
| IPv4 Address | Random IPv4 address | 192.168.1.42 | Null % |
| Boolean | true or false | true, false | Null % |
| Enum / List | Random value from a custom list | active, inactive, pending | Comma-separated values |
| URL | Realistic-looking URL | https://example.com/path | Null % |
| Username | Lowercase username string | james_smith42 | Null % |
| Password Hash | Bcrypt-style hash placeholder | $2b$10$abc...xyz | Null % |
| Lorem Ipsum | Placeholder text words/sentence | lorem ipsum dolor sit... | Word count |
| Color Hex | Random hex colour code | #a3f4c1, #2d78e9 | Null % |
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.
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.