隨機數產生器
在指定範圍內產生隨機整數或小數,可設定數量、不重複、排序與排除的數字。
包含最小值與最大值
包含最小值與最大值
1 到 10,000 個
0 表示整數,最多 10 位
用逗號、空格或換行分隔;範圍寫成 10..20 或 10~20
產生的數字
快捷鍵:Ctrl/⌘ + Enter 重新產生
使用說明
- 輸入最小值與最大值,產生的數字會包含這兩個值。
- 需要小數時設定小數位數,例如 2 位會產生 3.14 這樣的數字。
- 設定數量;勾選「不重複」時,每個數字最多出現一次,適合抽號碼。
- 有不想出現的數字時填在「排除的數字」,範圍可寫成 10..20。
- 數字會立即產生,按「重新產生」或 Ctrl/⌘ + Enter 再抽一次,結果可以複製或下載。
常見問題
產生的數字真的隨機嗎?
本工具使用瀏覽器 Web Crypto 的 crypto.getRandomValues(),這是適合密碼學用途的安全亂數,不是可被預測的 Math.random()。所有運算都在你的瀏覽器中完成,不會送到任何伺服器。
每個數字出現的機率都一樣嗎?
一樣。直接把亂數除以範圍大小取餘數,會讓較小的數字稍微容易出現(取餘數偏差)。本工具使用拒絕取樣,把會造成偏差的亂數丟掉重抽,所以範圍內每個數字的機率完全相同,排除的數字也不會讓其他數字的機率不均。
可以產生很大的數字嗎?
可以。本工具以 BigInt 精確計算,範圍可以超過 JavaScript 一般數字能精確表示的 9,007,199,254,740,991,最多到 100 位數,不會因為浮點數而失準。
小數是怎麼產生的?
設定 2 位小數時,範圍內的數字以 0.01 為間隔,例如 0 到 1 之間共有 0.00、0.01……1.00 共 101 個值,每個值機率相同。範圍端點不在間隔上時會往內取,例如 0.005 到 0.03 只會產生 0.01、0.02、0.03。
「不重複」是怎麼運作的?
本工具使用 Floyd 演算法從可抽的值中直接抽出不重複的一組,每一種組合的機率都相同,再隨機打亂順序。要求的數量超過範圍內的數字個數時會顯示錯誤,而不是悄悄給出重複的數字。