Create realistic fake names in seconds and export the result as a FAKENAME file for mock data, forms, and testing.
en_US, en_GB, fr, de, es, it, ja, ko, zh_CN, and dozens more. Locale codes follow ISO 639-1 (language) + ISO 3166-1 alpha-2 (country), so fr_CA returns French-Canadian names like "Émile Tremblay" while fr defaults to metropolitan France ("Lucas Martin"). Non-Latin scripts render natively — ja yields 田中 太郎, ko returns 김민준, ar produces احمد محمد.Synthetic names look like real people without being any real person. That's exactly what you want when you're building forms, demos, screenshots, or test datasets — the names need to look right (correct script, plausible cultural pattern, balanced gender distribution) but must not match an actual individual whose data you'd otherwise have to obtain consent for under GDPR, CCPA, or HIPAA. Typical scenarios:
faker, and Ruby's Faker gem all draw from per-locale name dictionaries; this tool exposes the same data behind a no-install UI.Pair this with the Lorem Ipsum Generator for body copy, UUID Generator for primary keys, and Password Generator to round out a complete synthetic-user fixture.
The locales below mirror the ISO 639-1 + ISO 3166-1 alpha-2 codes used by Faker.js (which lists 70+ locales) and similar libraries. Sample names are illustrative of the format each locale produces; actual generations vary per call.
| Locale code | Region / language | Sample first + last | Notes |
|---|---|---|---|
en_US |
United States English | Jessica Thompson | Surnames drawn from US Census-style frequency lists |
en_GB |
British English | Oliver Whitmore | Distinct surname pool from en_US (more "Whitmore", less "Garcia") |
fr |
French (France) | Lucas Martin | "Martin" is the most common French surname per INSEE |
fr_CA |
French (Canada) | Émile Tremblay | "Tremblay" dominates in Québec; absent from metropolitan-France pools |
de |
German | Maximilian Müller | Umlauts preserved; "Müller" tops the German surname frequency tables |
es |
Spanish (Spain) | María García López | Compound surnames (paternal + maternal) common in es and es_MX |
it |
Italian | Giulia Rossi | "Rossi" is the most common Italian surname |
ja |
Japanese | 田中 太郎 | Family name first, kanji native; "Sato 佐藤" is the most common surname |
ko |
Korean | 김민준 | Surname first, no space; "Kim 김" covers ~21.5% of South Koreans |
zh_CN |
Simplified Chinese | 王伟 | Surname first; "Wang 王" and "Li 李" are the most common |
ar |
Arabic | احمد محمد | Right-to-left script; given name + father's-name pattern in some sub-locales |
ru |
Russian | Александр Иванов | Cyrillic native; patronymics available in some library configurations |
pt_BR |
Brazilian Portuguese | Gabriel Silva | "Silva" tops Brazilian frequency lists; different from pt_PT |
hi / ta_IN |
Hindi / Tamil | प्रिया शर्मा / சுதா ராமன் | Devanagari / Tamil scripts native (availability varies by library) |
If you need names for a specific country that's not in the default list, picking a similar locale (e.g., en_AU for Australia, de_AT for Austria) usually gets you close — the libraries diverge mainly in surname frequency rather than character set.
| Property | Synthetic (this tool) | Real names (production data) |
|---|---|---|
| Tied to a real person | No — algorithmic combinations of pooled first + last names | Yes — identifies a specific individual |
| GDPR Article 4 status | Outside scope per Recital 26 (no identified/identifiable natural person) | Personal data; full GDPR applies |
| Safe for screenshots, demos, talks | Yes | No — requires consent or blurring |
| Safe for committing to public repos / test fixtures | Yes | No — accidental exposure is a breach |
| Risk of "coincidence match" with a real person | Low but non-zero — large-enough samples will hit common names by chance | N/A (already real) |
| Best practice for production seeding | Never use as production user records | Only with documented consent and lawful basis |
The Article 29 Working Party and several EU DPAs have noted that synthetic data falls outside GDPR scope only when there's no realistic re-identification path back to an individual — randomly combining "John" + "Smith" is fine; replaying a leaked breach dataset is not. This tool draws from generic per-locale frequency pools, not from any leaked or scraped dataset.
The same way Faker.js and its ports do it: the locale you pick has a curated list of first names (often split into masculine, feminine, and neutral buckets) and a separate list of surnames. The generator picks one at random from each pool and concatenates them in the locale's normal order — given-name + surname for most Latin-script locales, surname + given-name for Japanese / Korean / Chinese / Hungarian. There's no AI, no scraping of real people — just two random draws from pre-built lists.
Yes. Picking ja returns kanji-rendered Japanese names ("田中 太郎"), ko returns Hangul ("김민준" — note no space between surname and given name, which is correct Korean convention), ar returns Arabic script reading right-to-left, ru returns Cyrillic, and zh_CN / zh_TW return Simplified / Traditional Chinese. The output respects each locale's name order: family name first for CJK and Hungarian, given name first for most Western locales.
The Male / Female / Any toggle is a filter on the first-name pool. Some libraries (Faker.js in particular) expose a separate gender() method that returns strings like "Trans*Man" or "Non-binary" for the gender field itself, distinct from the name draw. For pure name generation the practical distinction is the first-name list; surnames are unisex in essentially every locale the tool supports.
It varies by library and locale. Faker.js and its forks weight common locales (en_US, de, fr) roughly by Census-style frequency where data exists, so "Smith" / "Jones" / "Williams" appear more often than "Zaharakos" in en_US. Less-resourced locales fall back to flat random sampling from a curated list. The output is plausible, not statistically representative — don't use it as a sociological dataset.
Statistically yes, eventually — there are only so many "John Smiths" or "Maria Garcías" to go around, and any random draw from a finite pool will collide with real-world bearers of that name. That's why this tool is for testing and demo use, not for impersonation. The synthetic-data exemption under GDPR Recital 26 covers the algorithmic generation; it doesn't shield you from using a generated name to claim to be someone specific.
Yes, with caveats. Per GDPR Recital 26 and consistent guidance from EU data-protection authorities, data not tied to an identified or identifiable natural person falls outside the regulation's scope. Synthetic names generated by random combination from pooled lists meet that bar. The caveats: (1) don't combine the fake name with real attributes (real email, real address) that re-create identifiability, (2) document your generation method if asked, and (3) don't use synthetic data to claim regulatory exemption for downstream processing of other real data.
No, and don't. These are appropriate for staging, demo, QA, mockups, screenshots, fiction, and load-testing — explicitly not for production user records. Production accounts need real, lawful-basis-backed PII (consent, contract, legitimate interest). Backfilling production with fake users creates support chaos (you'll fail KYC, payment, deliverability, and audit checks) and undermines whatever the production system is supposed to model.
Generate the names you need, select-all, and paste into a spreadsheet — Excel and Sheets will split single-column lists cleanly. For larger fixtures, run a library locally (Faker.js in Node, faker in Python, Faker in Ruby) — you get programmatic control over locale mix, seed (for reproducible test runs), and direct JSON / CSV output. This UI is optimized for quick one-off draws, not for ten-thousand-row dataset builds.
It can — random draws from finite pools will collide. If you need uniqueness, generate ~2-3x more names than you need and deduplicate, or pair each name with a UUID (use the UUID Generator) so collisions on the display name don't affect record identity in your database.