抽奖抽取生成器

把候选名单每行一个贴进来,填抽取数量,本页随机打乱后抽出中奖者。支持去重与一键复制,结果只在你浏览器里算,不上传任何名单。

生成口径:先按行拆分去空,再 Fisher-Yates 洗牌,取前 N 个;可重复模式下允许同一人多次中奖。演示默认 10 人抽 3。

使用方法

抽奖抽取生成器是「贴名单、定数量、点抽取」三步:

  1. 「候选名单」每行贴一个名字,演示已填 10 个示例姓名。
  2. 「抽取数量」填要抽几个,演示值 3;「是否去重」选同一人能否中多次。
  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。

刷新页面名单还在吗?

不在。本页不保存输入,刷新即清空,需要重新粘贴名单再抽。

能导出中奖名单吗?

能,点「复制结果」整段拿走,也可截图公示;本页不提供独立文件导出以免留存隐私。

空行怎么处理?

自动忽略首尾空格与空行,避免抽到空名额;只保留有效姓名参与抽取。

大名单会卡吗?

普通几百人瞬时完成;上千人虽稍慢但仍在本机跑完,不会卡死页面。

相关工具