隨機數產生器

在任意最小值和最大值之間選擇隨機數。整數或小數輸出,有或沒有重複。僅限瀏覽器,使用加密的強隨機性。

範例: min=1, max=100 → 47

使用瀏覽器的生成最小值和最大值之間的隨機數 crypto.getRandomValues 對於密碼學上的強隨機性—不可預測 Math.random.

預設行為傳回 1 到 100 之間的 10 個整數。對於擲骰、抽牌、採樣以及任何需要可靠的「真正隨機」選擇的地方很有用。

人們產生隨機數的目的是什麼

抽獎/抽獎/贈品抽獎

從參與者清單中選擇一個獲勝者號碼(1 到 N)。密碼隨機;如果有人質疑這個選擇,這是有道理的。

擲骰子

擲一個或多個任一面數的骰子。 1–6 表示 d6,1–20 表示 d20,1–100 表示百分位數。

隨機抽樣

從 M 清單中隨機選擇 N 行進行快速抽查或 QA 通過。

遊戲機制

隨機事件觸發、傷害檢定、戰利品掉落-任何需要檢定的遊戲邏輯。

測試數據生成

為 QA 測試資料產生隨機 ID、價格或數量 — 比手動輸入虛假數字要快得多。

crypto.getRandomValues 和統一範圍映射

該工具使用 Web Crypto API crypto.getRandomValues() 產生加密的強隨機值。在底層,它從作業系統的 CSPRNG 中提取 32 位元無符號整數(例如, /dev/urandom 在 Unix 上)。對於整數輸出,它透過模數縮減將原始 32 位元值對應到請求的範圍,拒絕超出範圍的值以消除偏差。對於十進制輸出,它除以 2^32 以產生 [0,1) 中的統一浮點數,然後縮放到所需的間隔。這避免了使用可預測的線性同餘產生器 Math.random().

該工具永遠不會播種;每次呼叫都會拉動新的熵。透過將產生的數字儲存在客户端中來強制執行重複預防 Set 並丟棄衝突,直到滿足請求的計數(實際上受範圍大小的限制)。所有計算都發生在瀏覽器中;沒有資料透過網路發送。

如何產生一個範圍內的隨機數

  1. 設定最小值和最大值(例如 1 和 100)。
  2. 選擇輸出類型:整數或小數(小數位數)。
  3. 切換重複處理:允許重複或強制執行唯一值。
  4. 按一下「生成」即可立即產生一組隨機數。

包含邊界、重複項和非常大的範圍

最小值 > 最大值
返回空集或提示更正順序;沒有產生任何數字。
範圍小於請求的計數
獨特模式會無限循環;工具警告或限制範圍大小。
範圍非常大 ( > 2^53 )
精確度受到 IEEE-754 double 的限制; min 和 max 被視為包含在內,但小數產生可能會失去精確度。
零範圍的十進制
當 min 等於 max 時,每個「隨機」數字都是該固定值,無論類型為何。

公平抽獎、贈品和無偏見抽樣

  • 對於抽獎或競賽獲勝者,請始終使用不重複的整數模式,以實現公平、便於審計的序列。
  • 如果您需要可重複的序列進行測試,請與基於當前時間的種子配對 - 但請注意,此工具使用加密隨機性並且不會公開種子。
  • 產生統計採樣的小數時,請將精確度設定為至少 6 位元以避免離散化偽影。
  • 為避免偏差,請確保在使用拒絕採樣時要求的範圍不是 2 的精確冪;該工具在內部處理這個問題。

加密隨機性與 Math.random 和骰子

這種基於瀏覽器的生成器與常見的程式替代方案相比如何?

這個工具Python 隨機模組試算表 (蘭德)
隨機性來源加密 (crypto.getRandomValues)梅森扭曲者(可預測)電子表格特定的 PRNG(通常是線性同餘)
整數/小數兩者均具有可配置的小數位randint() 表示整數,uniform() 表示小數RAND() 只傳回小數; RANDBETWEEN() 用於整數
重複處理可選的客户端強制唯一性手動編碼(sample() 或 while 迴圈)無內建;需拖曳和手動檢查
隱私和離線完全離線,無網路通話腳本在本地運行,但程式碼必須可信線上電子表格將資料傳送到伺服器

從 RAND 的隨機數字表到 CSPRNG

機械地產生隨機數的概念可以追溯到古代的骰子(公元前 3000 年)。在計算領域,約翰·馮·諾依曼 (John von Neumann) 在 1946 年提出了中方方法,但現代加密安全偽隨機數產生器 (CSPRNG) 在 20 世紀 90 年代出現,採用了 Yarrow (1999) 和 Fortuna 等演算法。 Web Crypto API 於 2014 年實現標準化,使瀏覽器應用程式可以直接存取作業系統的熵池——取代了較弱的熵池 Math.random() 在大多數引擎上,它使用非加密 PRNG,如 xorshift128+。

隨機數字問題

隨機性真的是隨機的嗎?

它使用 crypto.getRandomValues — 瀏覽器的加密安全來源。適合抽獎和其他高風險抽獎。

我可以產生重複的數字嗎?

預設情況下,是的 - 每次抽獎都是獨立的,因此可以重複。若要從範圍中選擇唯一的數字,請產生超出您需要的數字並使用以下命令進行重複資料刪除 刪除重複行.

我可以得到小數嗎?

預設值僅是整數。對於小數,乘以你的界限並除以輸出(例如 min=0,max=10000,然後在你的頭腦中除以 100)。

這與實體晶片相比如何?

對於任何實際目的都無法區分。加密隨機性至少與您可以滾動的任何實體骰子或硬幣一樣公平。

將我們的工具嵌入您的網站

對任何網站免費。沒有註冊。 iframe 從我們的伺服器載入並自動保持最新狀態。

📋 嵌入字數計數器

複製此片段(自動調整大小,複製按鈕有效):

即時預覽:

📋 嵌入此隨機數產生器

複製此片段(自動調整大小,複製按鈕有效):

即時預覽:

想要更多選擇嗎? 所有嵌入式工具 →