使用方式
- 選擇「數字」、「從清單挑選」或「硬幣與骰子」。
- 產生數字時,設定最小值、最大值、所需數量和小數位數;勾選「不重複」即可像抽彩券號碼一樣抽選。
- 從清單挑選時,每行輸入一個項目,並選擇要抽選的數量。每個項目只能抽選一次。
- 按下「產生」或「挑選」,再複製結果。再次按下即可重新抽選。
運作方式
數字取自 crypto.getRandomValues,也就是瀏覽器內建的密碼學安全亂數產生器,而非 Math.random。為了將亂數位元轉換成指定範圍內的數字,且不偏向任何數值,這項工具會使用拒絕取樣:當隨機的 32 位元數值落在範圍頂端無法平均分割的部分時,就會捨棄並重新抽取。簡單地使用「random % range」會讓較小的數字稍微容易出現。
最小值和最大值都包含在範圍內。設定小數位數後,範圍會依該位數切分成等距步進(兩位小數時為 0.01),每個步進值出現的機率都相同,因此 0 到 1 設定兩位小數時,會有 101 種可能的值。「不重複」會像抽獎一樣在不放回的情況下抽取;抽出的不重複數字不可能多於範圍內的數量,遇到這種情況時,工具會通知您。
清單抽選器會使用 Fisher–Yates 洗牌法打亂各行,再取出最前面的 N 個項目,因此每個項目機會相同,而且每行最多只會被選中一次。重複的行會視為不同項目,因此同一個名字若列出兩次,就有兩次中選機會。空行,以及行首和行尾的空格都會忽略。
擲硬幣時,正面和反面出現的機率相同;每顆骰子擲出 1 到 6 點的機率也相同。結果不會儲存,因此沒有人(包括我們)能查看或重現抽選結果。
範例
樂透式抽選
最小值設為 1、最大值設為 49、抽取數量設為 6,並開啟「不重複」和「排序」:您會得到六個不同的數字,例如 4、11、23、30、37、45。
抽出贈獎得主
貼上參加者名單,每行一個名字,再抽出 3 位得獎者。每位參加者最多中選一次,且每個人中選的機會相同。
產生測試用隨機小數
最小值設為 0、最大值設為 1,並設定 3 位小數,可得到 0.274 或 0.901 等數值;1,001 種可能的值出現機率都相同。
常見問題
這些數字是真正隨機的嗎?
數字取自瀏覽器內建的密碼學安全亂數產生器,並由作業系統根據硬體事件提供亂數種子。這適用於抽選和安全用途;若用於受監管的樂透,請遵守使用認證設備的相關規定。
最小值和最大值都包含在範圍內嗎?
是。例如設定範圍為 1 到 6 時,可能會產生 1、2、3、4、5 或 6,且每個數字出現的機率相同。
為什麼開啟「不重複」時會出現錯誤?
不重複抽取的數量不能多於範圍內的數字:例如 1 到 10 只有 10 個不同的整數。請擴大範圍、增加小數位數,或允許重複。
之後有人能確認或重現我的抽選結果嗎?
不行。結果不會儲存,也不會使用您之後能重新輸入的數值作為亂數種子。若要公開抽選,請錄下畫面或立即複製結果。
隱私權
數字和清單只會在您的瀏覽器中產生及處理,不會傳送、儲存或納入分析資料。