使用方法
抽奖抽取生成器是「贴名单、定数量、点抽取」三步:
- 「候选名单」每行贴一个名字,演示已填 10 个示例姓名。
- 「抽取数量」填要抽几个,演示值 3;「是否去重」选同一人能否中多次。
- 点「开始抽取」,中奖者进下方文本框;「复制结果」整段拿走,或「载入示例」还原演示名单。
抽奖抽取生成器能解决什么
它解决「手动抽签怕作弊、点名抽又慢」的问题,适合三类场景:
- 年会与聚会:把到场人名单贴进来,抽 3 名三等奖,洗牌算法保证每人等概率。
- 课堂与活动:抽回答问题的人、抽幸运观众,公开透明不偏袒。
- 群里抽奖:把接龙名单粘进来,抽中奖者后截图公示。
本页不做的事:不连接任何抽奖平台,不验证名单真实性(你贴什么算什么);不记录历史中奖。它只做本地随机抽取,公平性来自洗牌算法而非人工。
原理和变量
① 用了哪个具体函数:洗牌用 Fisher-Yates,从末位往前每次与随机位置交换;抽取用 Math.random() 取下标,保证每个元素等概率被移到前面。
② 关键参数为什么这样取:先「按行拆分去空」再洗牌,是因为用户常多贴空行或前后空格;去空避免抽到空名额。去重模式在抽前先对名单 Set 去重,保证同一人只中一次。
③ 遵循哪个标准:随机数用语言内置 Math.random()(密码学非安全但足够抽奖);输出普通文本,可复制公示。
④ 输入怎么变成输出:演示 10 人名单洗牌后取前 3,例如得到「李四 / 王五 / 赵六」(每次随机),输出按 1、2、3 编号。
⑤ 边界与阈值:抽取数量须 1~名单人数(可重复模式上限 9999);名单为空或仅 1 行会提示;数量大于去重后人数时提示调小。
⑥ 常见误用的正确解释:可重复模式是为了「有放回抽奖」(如抽多次奖可同人),不是 bug。另一个误区是以为刷新会保留名单——本页不保存,刷新即清空需重贴。
完整示例
演示名单(10 人)抽 3 名,一次可能得到(每次随机):
- 第 1 名:李四
- 第 2 名:王五
- 第 3 名:赵六
这 3 名来自对 10 人名单的洗牌结果,每次点「开始抽取」都会不同,可多次验证等概率。
输入范围与对照表
抽奖抽取生成器的输入范围与处理对照如下:
| 参数 | 允许范围 | 异常时处理 | 说明 |
|---|---|---|---|
| 候选名单 | 每行一个 | 空行自动忽略 | 至少 1 行有效 |
| 抽取数量 | 1~名单数 | 超出提示调小 | 去重模式受人数限 |
| 是否去重 | 去重 / 可重复 | 默认去重 | 可重复允许同人中多次 |
| 随机算法 | Fisher-Yates | — | 等概率洗牌 |
名单人数无硬上限(演示 10 人),但过大名单抽取会稍慢;结果只在本机算出。
结果边界和舍入
公平性怎么来的:Fisher-Yates 洗牌让每个名字出现在任意位置的概率相等,因此「第 1 名」到「第 3 名」对 10 个人完全等概率,没有人为偏向。
什么时候会拒绝:名单为空或只有 1 行有效时会提示先填名单;抽取数量不是正整数、或大于去重后人数时会提示调小。
结果性质:这是本地随机抽取结果,可截图公示;本页不留存任何名单与结果,刷新即清空,不发起网络请求,保护参与者隐私。
可重复模式:选「可重复」时同一人可中多次(如连抽三轮奖池不补),属于有放回抽样,并非错误。
常见问题
抽出来能作弊吗?
不能手动指定。结果由 Fisher-Yates 洗牌随机产生,每次点击都重新洗牌,人工无法预置中奖者。
名单会被上传吗?
不会。名单只在你浏览器里按行拆分和洗牌,不向任何服务器发送,适合含真实姓名的内部抽奖。
可重复模式是什么意思?
选「可重复」时同一人可中多次(有放回),适合连抽多轮且奖池不补;默认去重模式每人只中一次。
数量能大于人数吗?
去重模式下不能,会提示调小;可重复模式允许,但上限 9999。
刷新页面名单还在吗?
不在。本页不保存输入,刷新即清空,需要重新粘贴名单再抽。
能导出中奖名单吗?
能,点「复制结果」整段拿走,也可截图公示;本页不提供独立文件导出以免留存隐私。
空行怎么处理?
自动忽略首尾空格与空行,避免抽到空名额;只保留有效姓名参与抽取。
大名单会卡吗?
普通几百人瞬时完成;上千人虽稍慢但仍在本机跑完,不会卡死页面。