User Rating 0.0
Total Usage 0 times
1 – 50
Same seed = same results
Configure options above and click Generate to create random person profiles.
Is this tool helpful?

Your feedback helps us improve.

About

Generating realistic test data is a non-trivial problem in software development. Hardcoded fixtures rot. Purely random strings fail validation checks. This tool queries the randomuser.me public API to produce demographically plausible person records complete with name, email, phone, address, date of birth, and photo. Each record passes basic format validation for its locale. The generator supports filtering by gender and 18 nationalities, sorting by name or age, and bulk export to CSV (RFC 4180), JSON, or vCard 3.0 format. Note: the API returns procedurally assembled data. Names and addresses are locale-consistent but do not correspond to real individuals. Phone number formats match national patterns but are not guaranteed dialable.

Incorrect test data causes false positives in integration tests, masks encoding bugs in UTF-8 pipelines, and produces misleading load-test metrics. A name field that only ever contains ASCII characters will never expose the rendering bug triggered by Ñ, ß, or 漢字. This generator draws from multi-script name pools across nationalities, reducing that blind spot. Results are paginated client-side and persist across sessions via LocalStorage. Pro tip: always test with the maximum record count your UI will display. Edge cases hide in pagination boundaries, not in single-record views.

random user generator fake person data random name generator test data generator mock user profiles random identity sample data API

Formulas

The generator queries the randomuser.me REST endpoint with configurable parameters. The request URL follows this pattern:

GET https://randomuser.me/api/?results=n&gender=g&nat=c

Where n = number of records (1 - 50), g = gender filter (male | female | both), c = ISO 3166-1 alpha-2 nationality code(s), comma-separated.

Client-side age filtering applies the predicate:

filter(user) user.age min user.age max

Aggregate statistics use reduce to compute mean age:

age = ni=1 agein

CSV export escapes fields per RFC 4180: any field containing commas, double quotes, or newlines is wrapped in double quotes, with internal double quotes doubled.

Reference Data

Nationality CodeCountryName ScriptsPhone Format ExamplePostcode Format
AUAustraliaLatin04-XXXX-XXXXNNNN
BRBrazilLatin(NN) NNNN-NNNNNNNNN-NNN
CACanadaLatinNNN-NNN-NNNNA0A 0A0
CHSwitzerlandLatin0NN NNN NN NNNNNN
DEGermanyLatin0NNN-NNNNNNNNNNNN
DKDenmarkLatinNN NN NN NNNNNN
ESSpainLatinNNN-NNN-NNNNNNNN
FIFinlandLatin0NN-NNNNNNNNNNNN
FRFranceLatin0N-NN-NN-NN-NNNNNNN
GBUnited KingdomLatin0NNN-NNNNNNAA0 0AA
IEIrelandLatin0NN-NNNNNNNA00 AAAA
INIndiaLatinNNNNNNNNNNNNNNNN
IRIranArabic/Latin0NN-NNNNNNNNNNNNNNNNN
MXMexicoLatin(NNN) NNN NNNNNNNNN
NLNetherlandsLatin(0NN) NNN-NNNNNNNN AA
NONorwayLatinNNN NN NNNNNNN
NZNew ZealandLatin(0NN)-NNN-NNNNNNNN
TRTurkeyLatin(0NNN) NNN NNNNNNNNN
USUnited StatesLatin(NNN) NNN-NNNNNNNNN

Frequently Asked Questions

The public API is rate-limited but generous for typical use. Requests exceeding roughly 1,000 calls per hour from a single IP may be throttled. This tool caps results at 50 per request to stay well within limits. For stress-testing scenarios requiring thousands of records, export the first batch and re-generate rather than attempting a single massive fetch.
No. The API assembles plausible-looking data from locale-specific patterns. Phone numbers match the digit count and prefix conventions of their country but are not connected to real lines. Addresses use real city and state names but street numbers and names are procedurally generated. Do not use these records for anything requiring actual geographic or telephonic validity.
Both parameters are sent to the API simultaneously as query strings. The API applies them as an AND condition: if you request gender=female and nat=DE,FR, you receive only female profiles from Germany and France. If a nationality has insufficient data for a specific gender, you may receive fewer results than requested.
The CSV export uses UTF-8 encoding with a BOM (Byte Order Mark) prefix so that Microsoft Excel correctly detects the character set. Names from nationalities like Iran or Turkey may contain diacritics or non-Latin characters. If your downstream system strips BOM or assumes ASCII, you will see mojibake. Verify your import tool supports UTF-8.
The randomuser.me API supports a seed parameter. This tool includes a seed field: entering the same seed string with the same count and filters will return identical results across requests. Leave the seed empty for true randomness. Seeds are alphanumeric strings of any length.
The tool uses an AbortController with an 8-second timeout. If the API fails or times out, a toast notification appears with the specific error. No partial or cached data is displayed. Your previous generation remains visible until a successful new fetch replaces it. The retry button re-sends the exact same request parameters.