tigtools

亂數產生器

設定數字範圍和所需數量,或貼上清單來抽選得獎者。所有結果都由瀏覽器中具備密碼學安全性的亂數產生器產生。

在瀏覽器中執行 免註冊

模式

設為 0 會產生整數。

使用 crypto.getRandomValues 搭配拒絕取樣產生,因此範圍內的每個值都有相同機率。

使用方式

  1. 選擇「數字」、「從清單挑選」或「硬幣與骰子」。
  2. 產生數字時,設定最小值、最大值、所需數量和小數位數;勾選「不重複」即可像抽彩券號碼一樣抽選。
  3. 從清單挑選時,每行輸入一個項目,並選擇要抽選的數量。每個項目只能抽選一次。
  4. 按下「產生」或「挑選」,再複製結果。再次按下即可重新抽選。

運作方式

數字取自 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 個不同的整數。請擴大範圍、增加小數位數,或允許重複。

之後有人能確認或重現我的抽選結果嗎?

不行。結果不會儲存,也不會使用您之後能重新輸入的數值作為亂數種子。若要公開抽選,請錄下畫面或立即複製結果。

隱私權

數字和清單只會在您的瀏覽器中產生及處理,不會傳送、儲存或納入分析資料。