隨機數產生器
產生具有各種分佈的隨機數
如何使用隨機數產生器
- 1設定你所需範圍的最小值與最大值。
- 2選擇要生成的數字個數,以及是否允許重複。
- 3生成並複製結果,或重新抽取一組新數字。
隨機數是如何產生的
結果在 [min, max] 閉區間內均勻抽取區間內每個數字出現的機率相等;生成器以系統時鐘為種子,因此連續抽取結果不同。
對於密碼或抽獎等安全敏感場景,應使用密碼學安全的生成器,而非通用生成器。
通用生成器多為線性同餘或基於雜湊的偽隨機演算法,輸出由內部“種子”決定;同一種子會復現同一序列,因此可重複的科學實驗需要固定種子以便他人複核。
密碼學安全生成器(如系統的 /dev/urandom、CSPRNG)從不可預測的物理或系統噪聲取熵,輸出無法通過已見序列推算下一個值,適合令牌、鹽值、金鑰等場景。把兩者混用會帶來安全隱患或不可復現的實驗結果。
| 使用場景 | 是否允許重複 | 範圍建議 | 推薦生成器型別 |
|---|---|---|---|
| 抽獎中獎者 | 不允許 | 參與者編號區間 | 密碼學安全生成器 |
| 骰子/牌局模擬 | 不允許 | 1–6 或固定牌池 | 通用偽隨機 |
| 問卷抽樣 | 允許 | 受訪者編號 | 通用偽隨機 |
| 生成密碼/令牌 | 不允許 | 字元集長度 | 密碼學安全生成器 |
| 自動化測試用例 | 允許 | 覆蓋邊界值 | 通用偽隨機(可固定種子) |
不同抽取場景的推薦設定
常見問題
數字會重複嗎?
需要不重複的值時關閉「允許重複」;預設開啟,適用於相互獨立的抽取。
它是真正的隨機嗎?
它是偽隨機,對遊戲和抽樣足夠好,但不適用於加密。
如何公平地抽取中獎者?
把範圍設為參與者編號並抽取一次;公開方法以保證過程透明。
如何讓結果可復現?
在支援種子的生成器裡固定一個種子值;同一種子、同一演算法、同一範圍必定得到相同的抽取序列。
生成的是小數還是整數?
本工具按整數範圍抽取;若需 0–1 之間的小數,可把範圍放大(如 0–1000)再除以 1000 還原到 0–1。
