一签定音

用 Excel 做年会抽奖,有什么问题?

Excel 的 RAND() 有三个硬伤:每次表格重算都会重新取值,导致抽出的名字在保存、打印、切换窗口后可能变化;它属于伪随机数,种子可预测;而且 Excel 无法为任何一次抽取出具可复核的凭证。结果是争议一旦发生,主办方手里没有任何证据。

一、RAND() 会自己变

RAND() 是易失性函数。任何触发工作表重算的操作——按 F9、编辑任意单元格、打开文件、切换窗口、打印预览——都可能让它重新取一个值。这在抽奖场景里会直接造成事故:

正确的做法是抽完立刻“复制 → 选择性粘贴 → 值”,把结果固化成静态文本。但绝大多数人不知道这一步,事故基本都出在这里。

二、它是伪随机,不是真随机

RAND() 和 RANDBETWEEN() 都由确定性算法生成。对年会场景来说,没人会真的去逆推种子,所以实际风险不大。但一旦有人公开质疑“你是不是能控制结果”,主办方在原理上无法否认——这跟抽奖工具用 Math.random() 是同一个问题。

三、没有办法出具凭证

这是 Excel 最根本的短板。抽完之后,Excel 不能证明三件事:

  1. 这个结果对应的是哪一份名单;
  2. 是在什么时刻、用什么随机值算出来的;
  3. 表格在那之后有没有被改过。

没有凭证,“公平”就只能停留在口头承诺上。

四、如果一定要用 Excel,怎么把风险压到最低

五、几种方案对比

方案结果会不会变随机源能否出具凭证
Excel RAND()会,重算即变伪随机不能
Excel + 粘贴为值不会伪随机不能
纸箱摇号不会物理随机不能,一次性
一签定音不会加密级安全随机数能,16 位凭证可复现
RAND() 和 RANDBETWEEN() 哪个更适合抽奖?

两个都是伪随机,也都有重算变值的问题。RANDBETWEEN 只是把结果映射到整数区间,并没有改善随机质量。换成哪个都不能解决“结果会变”和“没有凭证”这两件事。

用 Excel 抽奖真的会被质疑吗?

奖品价值越高越容易被质疑。争议的核心往往不是“你是不是作弊”,而是“你能不能证明你没作弊”。Excel 在这一点上给不出证据,所以哪怕操作完全规范,也很难说服人。

抽奖结果在保存后变了,是什么原因?

这是 RAND() 易失性导致的正常现象。任何触发重算的动作都会重新取值。解决办法是抽完立刻复制并“选择性粘贴为值”,把结果固化成文本,之后再保存就不会变了。

打开就能抽,不用注册 名单只留在你本机,抽完给凭证,结果可复核 立即使用一签定音