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.
Generator Settings
Favorites
Generated Names
Recent Generations
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.
crypto.getRandomValues() supplies 32-bit values. Rejection sampling removes modulo bias before selecting an array index.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.
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.