轉盤抽獎

6 個項目
123456

中選者是在轉盤開始轉動前就以 crypto.getRandomValues 抽出的,動畫只是朝那個扇形停下。轉動方式不會改變結果,每個項目的機率完全相同。想提高某個名字的機率,就重複輸入它。

您輸入的內容不會被儲存、記錄或分享。

貼上名字或數字清單,轉動轉盤就能隨機抽出一個。中選者在轉盤開始轉動前就已決定,因此動畫不會影響結果。

使用方式

  1. 輸入或貼上項目,每行一個。
  2. 按下「轉動」。轉盤停止時會公布中選者。
  3. 移除中選者後再轉一次,即可不重複抽出。

為什麼在轉盤轉動前就決定得主

運算順序就是整個設計的核心。系統先從瀏覽器的密碼學亂數來源以拒絕取樣抽出一個值,所以每個項目的機率完全相同。之後才計算最終的旋轉角度:足以看起來像在轉動的整圈數,再加上讓指針停在早已中選那一格的偏移量。

顯而易見的另一種做法,是用隨機的力道轉動轉盤,再看指針停在哪一格。這感覺比較誠實,實際上卻比較不公平,因為結果會取決於動畫:緩動曲線、影格率、物理計算中的浮點數四捨五入、瀏覽器對背景分頁的效能限制。這些因素都不均勻,其中有些還會持續偏袒特定格子。在慢速筆電上跑得稍微不一樣的轉盤,就是機率分布稍微不一樣的轉盤。

先抽籤,讓動畫純粹只是裝飾,這才是它應有的角色。不論你是看著它轉完,還是在轉動途中重新整理頁面,結果都完全相同。

加權,以及抽出多位得主

讓某個項目更容易中選的唯一方法,是把它列出不只一次。重複的項目會保留而不合併,每一行就是一格,所以在十個項目的清單中出現三次的名字,會占十格中的三格,也就有十分之三的中選機率。

這是刻意的設計。藏在設定面板裡的權重欄位,旁觀的人誰都看不到;但一個名字占了轉盤上的三格,是現場每個人都看得到、數得出來的。如果一次抽籤需要讓參與者看得出公平,權重就應該呈現在轉盤上。

要抽出多位不重複的得主,就轉一次、移除得主、再轉一次。每次移除都會拿掉那一格,之後的抽籤只會從剩下的項目中進行,這正是分組、決定報告順序或頒發有名次獎項的正確模式。以移除而非重抽的方式進行,轉盤也會明顯變小,這同樣是大家都能跟上的。

你的清單存放在哪裡

除非你要求,否則哪裡都不存。如果你勾選儲存,清單會寫入本機儲存空間,也就是你自己在那一台裝置上的瀏覽器中、依網站分開的儲存區。它不是帳號,不會同步,也永遠不會傳送到本站或任何其他地方。

由此可以推知:存在筆電上的清單不會出現在手機上。清除瀏覽器資料就會刪除它。無痕視窗看不到它,同一台電腦上的其他瀏覽器也看不到。取消勾選會立即清除。

這是不要求你註冊所換來的取捨。如果你需要在兩個地方使用同一份清單,請把它存在筆記裡再貼上。

什麼時候不適合用轉盤

課堂點名、站立會議的發言順序、回顧會議的主持、決定去哪裡吃飯,或是在已經信任主辦人的人之間抽獎,轉盤正是最合適的工具:快速、看得見,而且省去了由某個人決定的尷尬。

但如果結果必須向沒有在場觀看的人,或有理由懷疑主辦人的人證明,它就不是合適的工具。這裡沒有任何東西能產生證據:沒有公開的種子,沒有事先做出的承諾,而一張截圖只能證明有一張截圖存在。涉及金錢或法律效力的抽獎,需要有書面化的程序,例如公開的種子、在報名截止前做出的承諾,或獨立的見證人,那是完全不同類型的機制。

看得見的抽選會改變人的感受

私下做好決定再宣布,和大家一起看著抽出結果,程序上完全相同,但感受截然不同。程序正義的研究一再發現,只要人們認為過程公平且透明,就願意接受自己不喜歡的結果,而看得見的隨機抽選大概是取得這種透明度最便宜的辦法。

正因如此,即使真正的隨機性根本不是重點,輪盤仍然有用。沒有人擔心主持人會在回顧會議上動手腳決定誰先發言;它的價值在於,把「選人」的尷尬從某個人身上移開,交給一個所有人都看得見的機制。

同樣的道理也說明了為什麼縮小輪盤比重抽更好用。把中選者移除、剩下的扇形跟著變大時,每個人都看得到機率變了以及怎麼變的,這比從一份看起來和第一次完全相同的名單再抽一次,要容易接受得多。

輪盤真正派得上用場的地方

在課堂上,用輪盤點名比老師憑印象點人更能平均分配發言機會,也去掉了「被點到代表被評價」的意味。常見的調整是每次抽出後就把名字移除,這樣全班會先輪過一遍,才有人重複。

在每日站會或回顧會議上,它能在不看年資的情況下決定發言順序,這在分散式團隊裡更重要,因為第一個把麥克風打開的人往往天天都是同一位。用於引導討論時,放一輪提問——什麼讓你意外、什麼拖慢了你——可以打破每個衝刺都產出同樣三條觀察的慣性。

在工作之外,它負責那些討論成本高於決定成本的事:去哪家餐廳、誰先開始、四個一樣好的選項要挑哪個。輪盤不會比你更會選,它只是比較擅長結束這場討論。

讓不在場的人也能信任這場抽選

只要牽涉到金錢或義務,螢幕錄影什麼也證明不了——它呈現的是結果,而不是結果產生得公平。標準做法是承諾與揭露:在報名截止前,先公布報名名單加上一個秘密種子的雜湊值。抽選後再公布名單和種子,任何人都能重新算出中選者,並核對雜湊是否和先前承諾的一致。

種子也可以取自沒有人能控制、事後人人可驗證的來源,例如指定高度的比特幣區塊雜湊,或是公開的隨機性信標。這連主辦方反覆更換種子直到結果合意的空間都一併消除了。

在受法規管轄的獎項促銷活動中,要求來自法律而非密碼學,通常涉及書面化的作業程序與獨立見證。這類工具是給達不到那個門檻的抽選用的,而那幾乎涵蓋了所有抽選。

以上是一般性說明,不構成法律意見;如果你的促銷活動在當地受博弈或消費者保護法規約束,仍應以適用的法定要求為準。

讓權重維持看得見

在這裡,讓某個項目更容易中選的唯一方式,就是把它列出不只一次;這是刻意的限制,而不是缺漏的功能。設定面板裡的權重欄位,旁觀的人完全看不到;但一個名字占掉十個扇形中的三個,全場都數得出來。

這樣也更容易推理。十個裡面占三個就是三成,而你看得見輪盤的三成。若在權重 1.0 的項目旁放一個權重 3.0,等於要求所有人去做他們不會去做的算術,還要相信那個算術真的是你以為的那樣。

在真正需要細緻權重的場合——例如每個人買的票數不同的抽獎——一張票一行的名單仍然是誠實的表示法,而從銷售資料產生那份名單,是一段兩行的腳本,不必做成功能。

動畫、動態敏感與結果的閱讀

旋轉的輪盤是個大面積的移動元素,對某些人來說那不是中性的裝飾:前庭系統疾患會讓持續的旋轉真的很難受,這正是作業系統提供減少動態偏好設定的原因,也是介面應該尊重它的原因。

由於中選者在動畫開始之前就已抽出,動畫純粹是呈現層的東西。縮短或略過它完全不影響結果,而這正是介面中任何動態都該具備的性質:移除它時不應該一併移除資訊。

結果也必須以文字形式存在,而不只是指針的位置。用即時區域宣告中選者,代表螢幕閱讀器會把它唸出來,也代表剛好轉頭、中途加入,或是在輪盤標籤小到看不清的解析度下看共享畫面的人,都能讀到結果。

常見問題

這個轉盤真的公平嗎?
是的,關鍵在於執行順序。中選者先由 crypto.getRandomValues(瀏覽器中密碼學安全的亂數來源)以拒絕取樣抽出,任何項目都不會被偏袒;之後才計算要轉到那個扇形所需的角度。許多轉盤工具的做法相反,先跑動畫再看指針停在哪一格,這等於讓影格時間與緩動曲線成為抽籤的一部分。
可以讓某個名字更容易中選嗎?
可以,把它輸入在多行即可。重複的項目不會被合併,每一行就是一個扇形,因此十行中出現三次的名字有 30% 的機率。這是本工具唯一的加權方式,而且是刻意的:權重直接顯示在轉盤上,而不是藏在設定裡。
我的清單存在哪裡?
只有在您勾選之後,才會存在這個瀏覽器、這台裝置中。它保存在 local storage,不會離開您的裝置,也不會傳送給本站或任何人。取消勾選就會立刻清除,清除瀏覽器資料同樣會刪除它。
換一台裝置還看得到我的清單嗎?
不會。這裡沒有帳號、也沒有同步,所以在電腦上儲存的清單不會出現在手機上。這是不要求註冊、也不把資料放在伺服器上所付出的代價。
要抽出多位不重複的中選者怎麼做?
轉動後按「移除中選者」,再轉一次。每次移除都會把該項目從轉盤上拿掉,下一次就只從剩下的項目中抽出,這是分組或決定名次獎品時常用的做法。
最多可以放幾個項目?
最多 500 個。超過大約 40 個之後,扇形上的文字會因為太小而隱藏,但轉盤仍會照常轉動,中選者也會完整顯示。

最後更新:

回報問題

請提供操作步驟、預期結果及實際結果。請移除機密與個人資料。

相關工具