游戏角色命名
MMORPG 新服开服前夜,公会 30 人约好统一前缀「星辰」,但每个人都要想一个不重名、不违和的角色名。用本工具批量生成 200 个中文男名,筛选出「星辰·逸风」「星辰·墨羽」等带武侠气质的名字,5 分钟分完,避免了开服后临时抱佛脚、名字被抢注的尴尬。
写小说配角、游戏 NPC 或测试数据时,重复的名字列表让人出戏。这个工具能按性别、语种(中文/英文)一次性生成几十个不重名的名字,并支持批量导出。所有名字由浏览器本地随机组合,名字库不经过网络——适合需要快速填充角色表,又不想暴露项目内容的场景。
MMORPG 新服开服前夜,公会 30 人约好统一前缀「星辰」,但每个人都要想一个不重名、不违和的角色名。用本工具批量生成 200 个中文男名,筛选出「星辰·逸风」「星辰·墨羽」等带武侠气质的名字,5 分钟分完,避免了开服后临时抱佛脚、名字被抢注的尴尬。
中德合资团队每周要为新功能分配内部代号,之前用「苹果」「香蕉」经常撞车。项目经理用本工具生成 50 个英文男名和 50 个英文女名,按字母顺序分配给不同模块——A 组用 Alice 系列,B 组用 Bob 系列。每次分配仅需 3 分钟,且名字自带性别区分,会议沟通时「Alice 模块」比「功能模块 3」清晰得多。
网文作者开新书,需要 12 个配角名:3 个反派、5 个正派、4 个中立角色,且要区分男女。手动翻字典 2 小时只凑出 5 个,还容易跟旧书角色重名。用本工具分性别各生成 50 个,按「反派用冷僻字、正派用温润字」筛选,半小时完成全部命名,比翻《百家姓》快 4 倍。
独立开发者注册 10 个海外云服务试用账号,每个需要不同的英文姓名。自己编名字太慢,且容易重复导致风控。用本工具一次性生成 20 个英文男名和 20 个英文女名,按「首字母不重复」规则挑出 10 个,配合随机邮箱后缀,15 分钟完成注册,比手动编名节省 1 小时。
小学班主任接手新班,学校系统导出名单只有学号,口头点名时「张伟」出现 3 次分不清。用本工具生成 45 个中文男名和 45 个中文女名,按「姓氏不重复、名字无生僻字」筛选,替换掉重名学生,打印出带序号的点名册,第一节课就记住了 80% 的学生。
| 维度 | 本工具 | 在线姓名站 | 手工起名 |
|---|---|---|---|
| 生成速度 | 浏览器内即时生成,无网络延迟 | 需上传请求、等待服务器响应 | 翻书/查资料,单人耗时数分钟 |
| 隐私 | 姓名数据完全在本地生成,不上传任何信息 | 输入参数(如姓氏、性别)会发送至服务器 | 完全离线,无数据外泄风险 |
| 离线可用 | 支持,纯前端实现,断网仍可生成 | 需联网,断网无法使用 | 天然离线,依赖纸质资料 |
| 批量输出 | 一次生成数百个姓名,结果直接展示 | 多数限单次生成10-50个,批量需付费 | 逐个想、逐个写,效率极低 |
| 姓名多样性 | 内置中英文男女姓名库,覆盖常见及冷门名 | 部分站仅支持中文或英文,男女库混用 | 依赖个人知识储备,易重复、缺冷门 |
| 格式定制 | 可指定性别、语言、数量,结果整齐排列 | 多数仅提供随机生成,无筛选选项 | 完全手动,无格式统一性 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 中文男 3 | 张伟 王磊 李强 | 常规:指定性别和数量,验证基本批量生成功能,返回随机常见男性姓名 |
| 英文女 2 | Emily Johnson Sophia Williams | 常规:英文女性姓名生成,验证英文姓名格式(名+姓)及性别对应 |
| 中文 0 | 边界:数量为0时,工具应返回空结果,不报错也不生成默认值 | |
| 英文男 1000 | (1000个英文男性姓名,每行一个) | 边界:批量上限测试,验证工具能否处理较大数量而不超时或截断 |
| 中文女 1 | 李娜 | 易错:仅1条时,用户可能期望无换行,但工具仍以换行结尾,需注意输出格式 |
| 英文 5 | James Brown Emma Davis Michael Wilson Olivia Taylor William Anderson | 易错:未指定性别时,工具默认混合生成,用户可能误以为只生成一种性别 |
| 中文男 10000 | (10000个中文男性姓名,每行一个) | 边界:超大批量测试,验证工具内存和性能极限,避免浏览器崩溃 |
1.性别参数与姓名不匹配
选择「男」但输入「张丽」或「Mary」选择「男」时输入「张伟」「John」等男性姓名;选择「女」时输入「张丽」「Mary」等女性姓名随机姓名工具按性别过滤姓名库,性别参数与姓名性别不一致会导致生成结果为空或混入错误性别。
2.语言参数与姓名不匹配
选择「中文」但输入「John Smith」选择「中文」时输入「张三」「李四」等中文姓名;选择「英文」时输入「John」「Emily」等英文姓名工具按语言过滤姓名库,语言参数与姓名语言不一致会导致生成结果为空或混入错误语言。
3.批量数量超出限制
输入批量数量 10000输入批量数量 1-100(具体上限以页面提示为准)单次生成数量受浏览器性能或后端限制,超出上限会导致页面卡顿、请求超时或返回空结果。
4.批量数量为 0 或负数
输入批量数量 0 或 -5输入批量数量 1-100 之间的正整数工具要求生成至少 1 个姓名,0 或负数无意义,且可能触发校验错误或返回空数组。
5.姓名中包含非法字符
输入「张@三」「John_Doe」输入「张三」「John Doe」(仅汉字或英文字母,英文可含空格)姓名库仅收录纯汉字或纯英文字母,特殊字符(@、_、数字等)不在库中,会导致匹配失败或生成异常。
6.英文姓名大小写混用导致匹配失败
输入「john doe」或「JOHN DOE」输入「John Doe」(首字母大写,其余小写)英文姓名库按首字母大写、其余小写存储,大小写不匹配会导致检索不到对应姓名。
7.中文姓名包含空格
输入「张 三」输入「张三」(中文姓名中间无空格)中文姓名库不含空格,输入空格会导致匹配失败或生成结果异常。
8.混合语言输入
输入「John 张三」或「张 Wei」输入纯中文「张三」或纯英文「John」工具按单一语言处理,混合语言输入无法匹配任何姓名库,生成结果为空。
姓名 = 姓氏 + 名字(性别 + 语言 + 数量)
姓氏从预置姓氏库随机选取名字根据性别和语言从名字库随机生成性别男/女,决定名字库范围语言中文/英文,决定字符集和命名规则数量批量生成个数,如 10选择中文男性、生成 5 个姓名:姓氏库随机取「张」,男性中文名字库取「伟」,得「张伟」;再取「王」+「磊」→「王磊」;重复 5 次,输出 5 个不重复的中文男性姓名。
4 种主流语言实现,复制即用:
import random
# 中英文姓名库
cn_surnames = ['王', '李', '张', '刘', '陈']
cn_male = ['伟', '强', '磊', '军', '勇']
cn_female = ['芳', '娜', '敏', '静', '丽']
en_male = ['James', 'John', 'Robert', 'Michael', 'William']
en_female = ['Mary', 'Patricia', 'Jennifer', 'Linda', 'Barbara']
def random_name(lang='cn', gender='male'):
"""生成随机姓名"""
if lang == 'cn':
surname = random.choice(cn_surnames)
given = random.choice(cn_male if gender == 'male' else cn_female)
return surname + given
else:
first = random.choice(en_male if gender == 'male' else en_female)
last = random.choice(['Smith', 'Johnson', 'Williams', 'Brown', 'Jones'])
return f'{first} {last}'
# 批量生成 3 个中文男性姓名
for _ in range(3):
print(random_name('cn', 'male')) # 例: 王伟// 浏览器 / Node.js 运行,无需依赖
const cnSurnames = ['王', '李', '张', '刘', '陈'];
const cnMale = ['伟', '强', '磊', '军', '勇'];
const cnFemale = ['芳', '娜', '敏', '静', '丽'];
const enMale = ['James', 'John', 'Robert', 'Michael', 'William'];
const enFemale = ['Mary', 'Patricia', 'Jennifer', 'Linda', 'Barbara'];
const enLast = ['Smith', 'Johnson', 'Williams', 'Brown', 'Jones'];
function randomName(lang = 'cn', gender = 'male') {
const pick = arr => arr[Math.floor(Math.random() * arr.length)];
if (lang === 'cn') {
return pick(cnSurnames) + pick(gender === 'male' ? cnMale : cnFemale);
}
return `${pick(gender === 'male' ? enMale : enFemale)} ${pick(enLast)}`;
}
// 批量生成 3 个英文女性姓名
for (let i = 0; i < 3; i++) {
console.log(randomName('en', 'female')); // 例: Mary Johnson
}package main
import (
"fmt"
"math/rand"
"time"
)
func init() {
rand.Seed(time.Now().UnixNano())
}
var (
cnSurnames = []string{"王", "李", "张", "刘", "陈"}
cnMale = []string{"伟", "强", "磊", "军", "勇"}
cnFemale = []string{"芳", "娜", "敏", "静", "丽"}
enMale = []string{"James", "John", "Robert", "Michael", "William"}
enFemale = []string{"Mary", "Patricia", "Jennifer", "Linda", "Barbara"}
enLast = []string{"Smith", "Johnson", "Williams", "Brown", "Jones"}
)
func randomName(lang, gender string) string {
pick := func(arr []string) string { return arr[rand.Intn(len(arr))] }
if lang == "cn" {
given := cnMale
if gender == "female" {
given = cnFemale
}
return pick(cnSurnames) + pick(given)
}
first := enMale
if gender == "female" {
first = enFemale
}
return pick(first) + " " + pick(enLast)
}
func main() {
// 批量生成 3 个中文女性姓名
for i := 0; i < 3; i++ {
fmt.Println(randomName("cn", "female")) // 例: 李芳
}
}#!/bin/bash
# 依赖: 无,纯 shell 实现
cn_surnames=('王' '李' '张' '刘' '陈')
cn_male=('伟' '强' '磊' '军' '勇')
cn_female=('芳' '娜' '敏' '静' '丽')
en_male=('James' 'John' 'Robert' 'Michael' 'William')
en_female=('Mary' 'Patricia' 'Jennifer' 'Linda' 'Barbara')
en_last=('Smith' 'Johnson' 'Williams' 'Brown' 'Jones')
random_name() {
local lang=$1 gender=$2
if [ "$lang" = "cn" ]; then
local surname=${cn_surnames[$RANDOM % ${#cn_surnames[@]}]}
if [ "$gender" = "male" ]; then
local given=${cn_male[$RANDOM % ${#cn_male[@]}]}
else
local given=${cn_female[$RANDOM % ${#cn_female[@]}]}
fi
echo "$surname$given"
else
if [ "$gender" = "male" ]; then
local first=${en_male[$RANDOM % ${#en_male[@]}]}
else
local first=${en_female[$RANDOM % ${#en_female[@]}]}
fi
local last=${en_last[$RANDOM % ${#en_last[@]}]}
echo "$first $last"
fi
}
# 批量生成 3 个英文男性姓名
for i in 1 2 3; do
random_name 'en' 'male' # 例: John Smith
done直接在输入框里填数字,比如填 500,点击生成即可。工具使用预置的姓氏库(覆盖常见百家姓)和名字用字库(按性别分频),组合时不会重复。如果生成量超过几千,页面可能会有短暂卡顿,建议分批生成。
英文名库来自美国社会保障署(SSA)历年新生儿排名前 1000 的名字,不是随机字母组合。男名如 James、Michael,女名如 Emma、Olivia。生成时会按性别分开,不会出现男性名字被分到女性组的情况。
中文名字用字有性别倾向但非绝对。工具按统计频次筛选,比如男性名字多用「浩」「宇」「杰」,女性多用「婷」「娜」「雪」。但个别字(如「瑞」「莹」)在真实人口中两性都有使用,工具未做硬性一刀切。如果要求百分百性别区分,建议勾选「严格模式」屏蔽交叉用字。
名字本身是真实姓氏加常用名用字的组合,但生成的是随机配对,不是从身份证库或户口本里取的真实姓名。用于测试数据、游戏角色、匿名注册等场景没问题。如果用于法律文件或实名认证,请使用本人真实姓名。
目前结果区支持一键复制全部(Ctrl+A 全选后复制),或点击结果区右上角的「复制」按钮。如果需要结构化文件,可先复制到记事本保存为 .txt,再导入 Excel 用分列功能处理。工具本身在浏览器内运行,不提供直接下载文件的功能。
名字用字库已过滤常见敏感字、生僻字和异体字(如「㐅」「𪚥」)。但极个别组合可能意外触发敏感词(如「王八」),这种情况概率极低。如果用于公开内容,建议生成后快速扫一眼。工具不存储任何生成记录,每次都是本地实时组合。
本工具纯前端实现,所有姓氏库、名字库和随机算法都打包在页面里,不依赖后端接口。首次加载后断网也能正常生成,且生成速度不受网络影响。隐私方面:输入内容、生成结果都不会上传到服务器。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。
测试数据提示本工具生成的数据均为随机虚构,仅供开发测试、界面占位与教学演示;随机结果可能与真实信息巧合,禁止用于注册账号、营销骚扰、伪造身份证明或任何指向真实主体的用途,违规使用产生的后果由使用者自行承担。