線上抽籤轉盤:免安裝、免註冊,每個選項機率嚴格相等
輸入選項就能轉的抽籤轉盤。結果用瀏覽器內建的密碼學亂數決定,每個選項機率完全相等,支援抽完移除與分享連結,資料不會離開你的裝置。
ready
按下開始抽籤
範本
紀錄
使用說明與原理約 5 分鐘展開閱讀
午餐吃什麼、誰去買飲料、報告誰先上台——這種小事最適合交給轉盤決定。在上面輸入選項、按下「開始抽籤」就好,不用安裝,也不用註冊。
怎麼用
- 輸入選項:框框裡一行一個,最多 100 個。也可以直接點「範本」快速套用。
- 按開始抽籤:轉盤轉 4~5 秒後停下,抽中的那格會反白,並記到下方的紀錄。
- 一次抽很多次:在「次數」填入想抽的次數,最多 10,000 次。轉完會跳出結果視窗,列出每個選項被抽中幾次,次數多的排在最上面,轉盤則停在次數最多的那格。
- 抽出好幾個不重複的:勾選「抽中後從清單移除」再設定次數,就會不重複抽出那麼多個,依抽中順序列出,適合抽獎、分組、排順序。
- 分享抽籤結果:抽完按「開始抽籤」旁的分享圖示,或結果視窗裡的「分享」,可以直接分享到 Threads、Facebook、Instagram、LINE、微信,也能複製文字或下載結果圖卡。分享出去的是結果連結:預覽卡的標題就寫著抽中什麼,朋友點開會直接看到你的結果,還能按「換我抽」自己抽一次。
- 分享這組選項:按「複製分享連結」,對方打開就是同一組選項,可以自己抽。
- 重新開始:按「重置」會清空所有選項、紀錄與設定,轉盤回到原位。按錯了也沒關係,按鈕會暫時變成「復原」,6 秒內再按一次就能還原。
各平台怎麼分享
| 平台 | 手機 | 電腦 |
|---|---|---|
| Threads | 開啟發文畫面,已帶入結果 | 同左 |
| 開啟分享畫面,預覽卡顯示結果;結果文字也會自動複製 | 同左 | |
| LINE | 直接開 LINE App 選好友 | 開 LINE 網頁分享 |
| 產生結果圖卡,從系統分享選單送到 IG | 下載圖卡,再到 IG 發佈 | |
| 微信 | 從系統分享選單選微信 | 顯示 QR Code,用微信掃碼 |
Facebook 只能分享連結、不能預先帶入文字;Instagram 和微信則完全沒有開放網頁直接分享的入口。所以分別改用自動複製、圖卡與 QR Code,這是目前網頁能做到最直接的方式。
你輸入的選項會記在這台裝置的瀏覽器裡,下次打開還在。
為什麼說它公平
轉盤看起來都一樣,差別在「抽」的那一下。
用的是密碼學等級的亂數
很多網頁工具用 Math.random() 產生亂數。它大多數時候夠用,但規格只要求「大致均勻」,演算法交給各瀏覽器自己決定,也明講不能用在安全相關的用途。
這個轉盤改用 crypto.getRandomValues(),也就是瀏覽器提供給加密用途的亂數來源,品質要求比 Math.random() 嚴格得多。
修掉「取模偏差」
把亂數對應到選項,最直覺的寫法是取餘數。但這樣會有一個很少人注意到的偏差。
用一個小例子說明:假設亂數範圍是 0~7,共 8 種可能,要從 3 個選項裡抽:
| 亂數 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| 除以 3 的餘數 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 |
選項 0 和 1 各出現 3 次,選項 2 只有 2 次——機率不相等。
修正方法叫「拒絕取樣」:碰到最後那段湊不滿一輪的亂數(這裡是 6 和 7)就丟掉重抽。剩下的 0~5 剛好讓每個選項各出現兩次,機率完全相等。
這個轉盤實際用的是 32 位元亂數,偏差小到幾乎測不出來。但既然修得掉,就修掉。
結果先決定,動畫只是演出來的
按下按鈕的瞬間,結果就已經用上面的方法抽好了。轉盤接著計算要轉幾圈、停在哪個角度,讓指針剛好落在那一格。
落點也會避開格子邊緣,只停在每格中間 70% 的範圍,不會出現指針壓線、吵到底算哪一格的情況。
想親眼確認?抽一萬次
把次數設成 10,000,結果視窗會列出每個選項的次數,旁邊附上理論值。例如 8 個選項,理論上每個約 1,250 次,實際跑出來會落在它附近上下幾十次,這就是機率均等該有的樣子。
資料去哪了?
哪裡都沒去。
- 抽籤在你的瀏覽器裡完成,這個頁面不會把選項送到任何伺服器。
- 選項存在你的裝置上(瀏覽器的 localStorage),清除網站資料就會消失。
- 分享連結把選項放在網址的
#後面。依照網址規範,#後面的內容由瀏覽器自己處理,不會隨著請求送到伺服器。 - 只有你按下分享時,結果才會送到你選的平台;結果圖卡也是在你的瀏覽器裡畫出來的。
- 分享連結本身帶著抽籤結果。有人打開連結時,網站只用它產生預覽卡的標題,不會另外保存。
常見問題
可以讓某個選項機率比較高嗎? 目前沒有權重設定,但可以把同一個選項輸入兩次——出現兩次就是兩倍機率。結果視窗會把同名的選項合併計算。
一次抽多次時,轉盤停的那格是什麼意思? 是這一輪被抽中最多次的選項;如果有好幾個並列最多,就從中隨機挑一個停。完整結果以跳出的視窗為準。
選項太長會怎樣? 轉盤上會自動縮短顯示,抽中時仍然顯示完整名稱。
手機可以用嗎?需要網路嗎? 可以。頁面載入完成後,抽籤本身不需要網路。
分享出去的結果能造假嗎? 可以。結果是寫在分享連結裡的,懂技術的人能自己改網址。這個轉盤適合午餐、分組這類日常決定;需要公信力的抽獎,建議當場抽、當場公布。
有開啟「減少動態效果」的話呢? 會自動改成快速轉一圈就停,結果的產生方式完全一樣。
資料來源
- MDN:Crypto.getRandomValues()
- MDN:Math.random() — 文件明言它不提供密碼學安全的亂數
- RFC 3986 §3.5:URI 片段 —
#之後的片段只由瀏覽器端處理