文本工具 · 测试数据

随机姓名

中/英男/女批量

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 82 次使用
生成数据均为随机虚构,仅供开发测试与占位使用
第一节

关于本工具

About

写小说配角、游戏 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个,批量需付费逐个想、逐个写,效率极低
姓名多样性内置中英文男女姓名库,覆盖常见及冷门名部分站仅支持中文或英文,男女库混用依赖个人知识储备,易重复、缺冷门
格式定制可指定性别、语言、数量,结果整齐排列多数仅提供随机生成,无筛选选项完全手动,无格式统一性
第二节

使用指南

Getting Started

使用步骤

  1. 1在「姓名数量」输入框键入需要生成的个数(1-100),右侧预览区同步显示计数变化
  2. 2勾选「性别」下的「男」或「女」,或同时勾选两者,结果区立即按性别分组展示
  3. 3点击「语言」切换按钮选择「中文」或「英文」,姓名列表自动刷新为对应语种格式
  4. 4点「批量生成」按钮后,结果区一次性输出全部姓名,每行一个,支持鼠标框选复制

输入输出示例

输入输出说明
中文男 3张伟 王磊 李强常规:指定性别和数量,验证基本批量生成功能,返回随机常见男性姓名
英文女 2Emily Johnson Sophia Williams常规:英文女性姓名生成,验证英文姓名格式(名+姓)及性别对应
中文 0边界:数量为0时,工具应返回空结果,不报错也不生成默认值
英文男 1000(1000个英文男性姓名,每行一个)边界:批量上限测试,验证工具能否处理较大数量而不超时或截断
中文女 1李娜易错:仅1条时,用户可能期望无换行,但工具仍以换行结尾,需注意输出格式
英文 5James 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」

工具按单一语言处理,混合语言输入无法匹配任何姓名库,生成结果为空。

第三节

工作原理

How It Works

核心公式

姓名 = 姓氏 + 名字(性别 + 语言 + 数量)

变量说明

  • 姓氏从预置姓氏库随机选取
  • 名字根据性别和语言从名字库随机生成
  • 性别男/女,决定名字库范围
  • 语言中文/英文,决定字符集和命名规则
  • 数量批量生成个数,如 10

示例

选择中文男性、生成 5 个姓名:姓氏库随机取「张」,男性中文名字库取「伟」,得「张伟」;再取「王」+「磊」→「王磊」;重复 5 次,输出 5 个不重复的中文男性姓名。

选择参数语言/性别/数量本地词库匹配姓氏库+名字库随机组合生成姓氏+单/双名批量输出列表展示性别判定男名/女名词库
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

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
第五节

常见问题

Q & A
怎么批量生成几百个不重复的中文名字?

直接在输入框里填数字,比如填 500,点击生成即可。工具使用预置的姓氏库(覆盖常见百家姓)和名字用字库(按性别分频),组合时不会重复。如果生成量超过几千,页面可能会有短暂卡顿,建议分批生成。

生成的英文名是正经外国人名吗?还是自己瞎编的?

英文名库来自美国社会保障署(SSA)历年新生儿排名前 1000 的名字,不是随机字母组合。男名如 James、Michael,女名如 Emma、Olivia。生成时会按性别分开,不会出现男性名字被分到女性组的情况。

为什么我选了性别男,还是生成了几个像女生的名字?

中文名字用字有性别倾向但非绝对。工具按统计频次筛选,比如男性名字多用「浩」「宇」「杰」,女性多用「婷」「娜」「雪」。但个别字(如「瑞」「莹」)在真实人口中两性都有使用,工具未做硬性一刀切。如果要求百分百性别区分,建议勾选「严格模式」屏蔽交叉用字。

生成的名字是真实的中国人名吗?拿去注册账号会不会撞车?

名字本身是真实姓氏加常用名用字的组合,但生成的是随机配对,不是从身份证库或户口本里取的真实姓名。用于测试数据、游戏角色、匿名注册等场景没问题。如果用于法律文件或实名认证,请使用本人真实姓名。

能不能导出成 Excel 或 txt?生成的列表太长不好复制。

目前结果区支持一键复制全部(Ctrl+A 全选后复制),或点击结果区右上角的「复制」按钮。如果需要结构化文件,可先复制到记事本保存为 .txt,再导入 Excel 用分列功能处理。工具本身在浏览器内运行,不提供直接下载文件的功能。

生成的姓名会不会有敏感词或政治相关字?

名字用字库已过滤常见敏感字、生僻字和异体字(如「㐅」「𪚥」)。但极个别组合可能意外触发敏感词(如「王八」),这种情况概率极低。如果用于公开内容,建议生成后快速扫一眼。工具不存储任何生成记录,每次都是本地实时组合。

这个工具要联网吗?断网了还能用吗?

本工具纯前端实现,所有姓氏库、名字库和随机算法都打包在页面里,不依赖后端接口。首次加载后断网也能正常生成,且生成速度不受网络影响。隐私方面:输入内容、生成结果都不会上传到服务器。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

测试数据提示本工具生成的数据均为随机虚构,仅供开发测试、界面占位与教学演示;随机结果可能与真实信息巧合禁止用于注册账号、营销骚扰、伪造身份证明或任何指向真实主体的用途,违规使用产生的后果由使用者自行承担。

选择 打开 +新窗口 esc关闭