Random Name Generator

Generate realistic names and nicknames by country

Gender
  • Press Generate and names will appear here.

About Random Name Generator

Person names in this tool are built from a small, fixed pool per country: common family names and 20 common given names for each gender. For English that means surnames like Smith, Johnson and Garcia, and given names like Liam, Olivia or Elizabeth, combined at random into something like "Grace Walker". Nickname mode picks one adjective and one noun, then optionally adds digits and leetspeak.

It is meant for moments when you need a name that sounds right but does not point to anyone in particular: seed data for a database, a minor character in a story, NPCs in a tabletop game, sample users in a screenshot. Below is how the names are assembled and where the result drifts from real-world name distributions.

Korean surnames follow real frequencies

Real surname distributions are heavily skewed, and South Korea is the extreme case: according to the 2015 Population and Housing Census by Statistics Korea, Kim accounts for 21.5% of the population (about 10.69 million people), Lee 14.7% and Park 8.4%, together 44.6%. The generator draws Korean surnames with those census shares, so about a fifth of a generated list is Kim. Two-syllable surnames such as Namgung, Hwangbo, Jegal, Seonu and Dokgo are included at their real, small share (about 0.09% combined), and the population outside the top 20 is spread evenly over 30 further surnames as an approximation.

That makes collisions realistic too, which matters if you are testing duplicate-name handling, search ranking for common names or deduplication logic. Other languages have no frequency data in the tool yet, so their 20 surnames are drawn with equal probability (5% each), which underestimates how often real people share a name.

The given names skew young

Several lists lean toward names popular with recent births: Liam, Noah and Olivia in English; 陽翔 (Haruto) and 陽菜 (Hina) in Japanese; 민준 (Min-jun) and 서연 (Seo-yeon) in Korean. They fit a character in their twenties or younger. If you are writing a 60-year-old, pick a name that was common in that person's birth decade instead. Name popularity by year is published by national statistics offices, such as the U.S. Social Security Administration's baby names data.

Naming rules the tool does follow

Spanish names get two different surnames, paternal then maternal (María García López), as is normal in Spain and much of Latin America.

  • Order: Korean, Chinese, Japanese and Vietnamese names are family-name-first. Korean, Chinese and Japanese are written without a space (王伟, 佐藤陽翔); Vietnamese keeps the space (Nguyễn Minh).
  • Russian feminine surnames: the generator changes the ending for women, so Иванов becomes Иванова and names in -ский become -ская. Patronymics (the middle name derived from the father's name) are not generated.
  • Polish feminine surnames: -ski and -cki become -ska and -cka (Kozłowski → Kozłowska). Surnames that are not adjectival, like Nowak or Wójcik, stay the same.

How many names before duplicates appear

You can generate up to 200 at a time, and the tool rejects repeats while it can. For one gender in most languages there are 20 × 20 = 400 combinations. Random draws collide sooner than intuition suggests, the same effect as the birthday problem: with 400 possibilities, the chance of at least one repeat passes 50% at around 24 draws. Korean has 55 surnames (1,100 combinations per gender), but because draws concentrate on Kim, Lee and Park, a repeat becomes more likely than not after about 18 names. Spanish surname pairs raise the count to 7,600. The tool throws repeats away and draws again. If you ask for more names than there are combinations, it has to allow duplicates.

English nicknames have 30 adjectives × 30 nouns = 900 combinations. Adding two digits multiplies that by 100, to 90,000. That is why appending digits is a practical way to get a username that is not already taken.

Worked examples

Korean, any gender, five names

Input
Mode: person, language: Korean, gender: any, count: 5
Output
이민서, 임수빈, 유지호, 김유준, 조정우

Surnames are drawn by population share, so Kim, Lee and Park dominate: Kim has a 21.5% chance on each draw, Hong about 1.1%.

Spanish, any gender, three names

Input
Language: Español, gender: any, count: 3
Output
María Jiménez Vargas, Marta Hernández Moreno, Marcos Martín González

Each name carries a paternal and a maternal surname, and the two are always different.

Russian and Polish female names

Input
Language: Русский / Polski, gender: female, count: 3
Output
София Лебедева, Ирина Иванова, Ольга Павлова / Julia Kozłowska, Zuzanna Kamińska, Julia Wójcik

Лебедев became Лебедева and Kamiński became Kamińska. Wójcik is not adjectival, so it did not change.

English nickname with underscores, two digits, leet

Input
Separator: _, digits: 2, leet: on, casing: lower
Output
54v4g3_lynx_01, r0y4l_b34r_83, v3lv37_f0x_05

Leet swaps a→4, e→3, i→1, o→0, s→5, t→7. "lynx" has none of those letters, so it passes through unchanged.

How to use it

  1. Choose person names or nicknames.
  2. Pick the language or country and a gender; for nicknames, set separator, digits, leet and casing.
  3. Set how many (up to 200) and generate.

Frequently asked questions

Could a generated name belong to a real person?

Almost certainly. These are common surnames paired with common first names. That is fine for test data; in fiction, avoid pairing one with details that point to a specific real person.

What are the most common surnames in Korea?

Kim (21.5%), Lee (14.7%) and Park (8.4%), per Statistics Korea's 2015 census. The generator draws Korean surnames with these shares.

Why do Spanish names have two surnames?

In Spain and most of Latin America people carry a paternal and a maternal surname, so the tool attaches two different ones.

Is this safe to use for fake accounts?

Names are only one part of an identity. The tool is for mock data, fiction and games, not for impersonating anyone or evading a platform's rules.

Sources

Last reviewed:

Privacy and how data is handled