Back to Utiliverse
100% Free and Browser Based

Random Name Generator

Generate random first names, last names, or full names for stories, examples, test data, games, brainstorming, and other creative uses. Filter by naming tradition, common usage, first letter, length, and style.

Name labels are flexible. Names move between languages, cultures, and regions over time, and gender usage can vary by person and place. The origin/tradition and usage filters below are broad discovery aids rather than definitive identity labels.

Generator Settings

Separate names with commas. For full names, excluding a first name or surname removes combinations containing it.

Favorites

Generated Names

Type
Full Name
Tradition
Any
Random Source
Web Crypto
Ready to generate names
Choose your filters and generate a batch.

Recent Generations

The last five batches are stored locally in this browser only.

Browser-based generation: filtering, cryptographic random selection, first/last/full-name assembly, duplicate avoidance, exclusions, favorites, recent-history storage, copying, and theme handling are performed locally using the built-in collections of 247 first-name records and 160 surname entries. No external name API is required. Favorites and the last five generation batches are stored in this browser's localStorage. The page itself still loads interface and advertising resources from external providers.

How the Random Name Generator Works

The generator first filters the built-in name collection based on the settings you choose, then selects values using the browser's Web Crypto API. For full names, it combines a first name with a surname from the selected naming tradition; an optional middle name can be added from the same filtered first-name pool.

No external name API is required. Generation, favorites, and recent-history features all work inside the browser. Favorites and the last five batches are stored locally on the current device.

Ways to Use Random Names

  • Create placeholder names for mockups, demos, spreadsheets, or test data.
  • Brainstorm names for fictional characters, games, stories, or role-playing campaigns.
  • Generate a quick list when you need neutral example names for documentation or training material.
  • Explore broad naming traditions without having to think of every option manually.

For real-world identity data, use appropriate privacy and consent practices. Randomly generated names should not be assumed to correspond to real people.

About Naming Traditions and Labels

Names frequently cross language and cultural boundaries. A name may be common in several regions, may have multiple spellings, or may be used differently across communities. The tradition filters in this tool are intentionally broad and are meant to help discovery rather than define a person's ethnicity, nationality, or identity.

The Feminine, Masculine, and Unisex / Broad Usage filters likewise reflect common naming usage in parts of the world rather than fixed rules about who can use a name.

Generation Methodology, Randomness, and Important Limits

The generator filters local name data according to the active settings and then chooses entries with the browser's Web Crypto API. It does not call an external name service, rank results by popularity, or infer demographic identity from the generated names.

Random sourcecrypto.getRandomValues() supplies 32-bit values. Rejection sampling removes modulo bias before selecting an array index.
First-name poolFilters can apply common usage, exact naming-tradition label, first letter, first-name length, style, and exclusions.
Surname poolSurnames come from the selected tradition, or from all built-in surname lists when Any tradition is selected.
Batch sizeThe requested quantity must be a whole number from 1 through 100.

Worked example: filtered first-name generation

Mode: First Name Filters: Common usage = Feminine Tradition = French Starts with = C Length = Medium Style = Classic The generator: 1. Builds the matching local pool 2. Draws one entry with Web Crypto 3. Repeats until the requested batch is filled or uniqueness attempts are exhausted

Worked example: full name with a middle name

Mode: Full Name First-name pool: Filtered by your chosen usage/tradition/letter/length/style Surname pool: Selected naming tradition Middle name: Chosen from the same filtered first-name pool, excluding the already-selected first name Example structure: First Middle Surname

The built-in data is finite and editorial

This version contains 247 first-name records and 160 surname entries across 10 naming-tradition labels, with 7 first-name style labels. The collection is designed for practical generation and brainstorming, not exhaustive linguistic or cultural coverage.

Tradition matching is exact

The first-name filter compares the selected tradition to the stored origin label exactly. For example, Irish / Scottish is one combined label in this generator rather than two independently selectable origins. Surname lists use the same tradition labels.

Length applies only to first names

Short means 3–5 Unicode code points, Medium means 6–7, and Long means 8 or more. The code uses [...name].length, which counts Unicode code points rather than UTF-16 code units. Surname length is not filtered.

Style applies only to first names

Labels such as Classic, Modern, Vintage, Short, Romantic, Nature, and Strong are editorial discovery categories in this dataset. They are not standardized linguistic classifications, and they do not filter surnames.

The exclusion box matches complete first names and surnames

Comma-separated exclusions are normalized with toLocaleLowerCase(). A first name is removed only when the complete stored first name matches an excluded term, and the same is true for surnames. It does not perform substring filtering inside a longer name.

Full-name generation combines pools independently

For Full Name mode, the tool randomly picks a first name from the filtered first-name pool and a surname from the available surname pool. The generated pairing is synthetic; it should not be interpreted as a historically or culturally typical real-world name combination.

Middle names come from the same filtered first-name pool

When Include a middle name is enabled, the generator removes the chosen first name from the candidate list and then randomly selects another matching first name. If the filtered pool contains only one name, the result can contain no middle name even though the option is enabled.

Duplicate avoidance is retry-based

When Avoid duplicate generated names is enabled, the tool tracks complete generated strings case-insensitively and retries duplicates. The attempt ceiling is max(500, requested count × 60). If the filtered space cannot supply enough distinct results before that ceiling, the page returns the unique names it found and shows a warning.

Random selection is unbiased over the active array, not world name usage

The randomBelow() helper uses rejection sampling so each array index has equal probability. Selection is therefore even across the filtered built-in entries, not weighted by population, birth statistics, country frequency, or current popularity.

Favorites and recent history are browser-local

Favorites are stored under utiliverse-random-name-favorites-v1. Recent generations are stored under utiliverse-random-name-history-v1. History keeps only the five most recent batches and stores up to the first 12 generated names from each batch. These lists do not sync between browsers or devices.

History display is intentionally abbreviated

The recent-history panel displays up to the first five stored names from each batch, followed by a “+N more” summary when additional names were saved. The stored history entry itself can contain up to 12 names.

Generated names are not identity data

The tool creates synthetic combinations from built-in lists. A generated full name may coincidentally match a real person. Do not assume a generated name corresponds to a real identity, and avoid using random names to fabricate records where real consent or verified identity is required.

Use the labels as discovery aids, not identity claims. Naming traditions, gender usage, spelling, and cultural associations vary by place, language, family, and time. Verify cultural or linguistic details separately when accuracy matters.

Common mistakes

  • Assuming Web Crypto means the names are weighted by real-world popularity.
  • Expecting the length or style filters to affect surnames.
  • Assuming a generated first-name/surname pairing is culturally typical.
  • Requesting more unique names than the active filters can produce.
  • Expecting favorites or recent history to sync across devices.

Related Utiliverse Tools

Last reviewed: October 3, 2026 · Built-in first/surname collections, exact tradition matching, first-name filters, Web Crypto rejection sampling, duplicate retry ceiling, middle-name logic, exclusions, favorites/history localStorage, copy fallback, and theme behavior reviewed against the current implementation.

Random Name Generator FAQ

Can I generate full names?

Yes. Select Full Name to combine a random first name and surname. You can also enable an optional middle name.

Can I generate multiple names at once?

Yes. Enter any quantity from 1 to 100 and the tool will produce a batch of names.

How are the names chosen?

The tool filters its local name data according to your settings and then uses the browser Web Crypto API for random selection.

Can I prevent repeats?

Yes. Avoid duplicate generated names is enabled by default. The generator will retry duplicate results within the same batch when enough unique combinations are available.

Can I save favorite names?

Yes. Select the heart on any generated name. Favorites are saved locally in your browser and can be copied as a shortlist.

Are the naming-tradition labels exact?

No. Names can belong to more than one linguistic or cultural tradition, and usage changes over time. The filters are broad discovery categories rather than definitive identity labels.

How many names are built into this version?

This version contains 247 first-name records and 160 surname entries across 10 naming-tradition labels.

Are names weighted by popularity?

No. Each entry in the active filtered pool is selected with equal probability. The generator does not use live birth statistics or popularity rankings.

What happens if I request more unique names than the filters can provide?

The generator retries duplicate full results up to a fixed attempt ceiling. If it cannot produce the requested number of distinct results, it returns the unique names it found and shows a warning.

Does the length filter also apply to surnames?

No. First-Name Length applies only to the first-name pool. Surname length is not filtered.

Do favorites and recent generations sync across devices?

No. Both are stored in localStorage in the current browser. Recent history keeps only the five latest batches.