随机转盘

转盘开始转动之前,就已用浏览器的 crypto.getRandomValues 选出获胜者,所以每个扇区的概率相同。大约四秒的旋转只是展示结果。

问题解决了吗?

使用方法

  1. 在输入框里每行写一个选项,空行会被忽略。
  2. 点“转一下”,转盘转大约 4 秒后停在抽中的选项上。
  3. 点“把抽中项从列表移除”可以删掉它,接着抽下一个。

计算方法

抽中的结果在转盘开始转动之前,就由浏览器的密码学随机数生成器(crypto.getRandomValues)决定。每个扇区被抽中的概率相同。

之后动画会算出停在所选扇区内的角度,加上几圈,平滑地减速。动画只是展示结果,并不决定结果。

同一个选项写两次就有两个扇区,被抽中的概率翻倍。

转盘的用途

  • 游戏或开会时决定谁先来。
  • 从抽奖报名者中抽出中奖者。
  • 意见不统一时,决定去哪家店、做什么菜。
  • 课堂上公平地随机点名。

常见问题

真的是随机的吗?

是的。抽取使用 crypto.getRandomValues,和浏览器用于安全功能的随机源相同,每个扇区概率一样。

想让某个选项更容易被抽中怎么办?

把它写成多行。一行就是一个扇区,写三次的选项被抽中的可能是三倍。

最多能放多少个选项?

100 个。超出的行不会放上转盘,并会给出提示。

输入的内容会被保存或发送吗?

不会。列表只存在于浏览器的这个页面里,关闭或刷新就会消失。