跳至主要內容
SPCXTools

亂數產生器

抽取任意範圍的亂數 — 可一次產生一個或數千個,並支援設定不重複。

本機執行 — 檔案絕不會離開您的裝置

正在載入工具…

如何使用 亂數產生器

  1. 1輸入 最小值 與 最大值。產生的結果將包含這兩個數值。
  2. 2設定您要產生的 數量,若需要小數,請設定 小數位數。
  3. 3保持勾選 不重複,確保每個數字最多只會出現一次,就像抽獎或樂透一樣。
  4. 4點擊 產生。勾選 結果排序 可將數字依遞增排序,接著即可複製結果。

產生任意範圍的亂數

需要 1 到 100 之間的數字、6 個樂透號碼,還是測試用的 1,000 個隨機數值?這個亂數產生器可以從您指定的任意範圍中抽出數字,並提供不重複、排序及小數位數等選項。它使用瀏覽器的密碼學安全隨機性(cryptographically secure randomness),確保結果無法預測且分佈均勻,而且所有資料都不會傳送到伺服器。

功能特色

  • 任意範圍:包含負數與極大的數值。
  • 單一或多個:一鍵最多可產生 10,000 個數字。
  • 不重複:就像從袋子裡抽球一樣的模式,即使範圍極大也能高效運作。
  • 小數:最多可支援至小數點後六位。
  • 排序:將結果依遞增排序,並複製為清單。
  • 無偏差:採用拒絕取樣(rejection sampling)確保範圍內的每個數值出現機率均等。

常見用途

遊戲與決策。 擲虛擬骰子(1–6)、決定誰先開始、隨機挑選頁面或問題,或是公平地做出決定。

抽獎與贈獎活動。 為每個參加者分配一個號碼,然後抽出不重複的得獎者。由於隨機性來自安全來源,沒有人能預測或影響結果。

樂透。 產生一組不重複的樂透號碼。隨機選號能避開生日等常見的選號模式,降低與他人平分獎金的機率。

教育與研究。 從編號清單中隨機抽樣、將參與者分組,或是建立練習題。

軟體測試。 在特定範圍內產生測試輸入值、ID 或樣本資料集。

如何產生「公平」的亂數

單純的做法是取一個極大的隨機值,除以範圍大小後取餘數。但如果範圍無法整除亂數來源,這種做法會讓某些數字出現的機率稍微偏高。本工具改採「拒絕採樣」(rejection sampling)的方式,直接捨棄會造成偏差的數值並重新抽取。因此,在 1 到 3 的範圍內,每個數字被抽中的機率都會是精準的三分之一。

若要抽出不重複的數字,本工具會執行局部的 Fisher–Yates 洗牌演算法:概念上是將整個範圍洗牌後取出最前面的幾個數字,但實際上並不會建立完整的清單。因此,即使從 1 到 1,000,000,000 之間抽出 10 個數字,也能瞬間完成。

如果您需要的不是數字而是隨機字串,歡迎嘗試 密碼產生器 或 UUID 產生器。

常見問題

這些數字真的是隨機的嗎?
它們來自您瀏覽器的密碼學安全亂數產生器(crypto.getRandomValues),其種子取自不可預測的系統來源。本工具還使用了拒絕採樣(rejection sampling),因此範圍內的每個數字出現的機率完全相等——不會偏向較小的數字。
包含最小值和最大值嗎?
是的。1 到 10 的範圍可以產生 1 和 10。若是小數,結果會落在這兩個數值之間的任何位置。
我該如何挑選樂透號碼?
設定您的樂透號碼範圍(例如 1 到 49),將 數量 設定為抽出的球數(例如 6),保持開啟 不重複,並勾選 排序結果。請記住,每一種組合的中獎機率都完全相同。
為什麼開啟「不重複」時會出現錯誤?
您要求的不重複數字數量超過了範圍內的數字總數——例如,在 1 到 10 之間要求產生 20 個不重複數字。請擴大範圍、減少數量,或是允許數字重複。
我可以用它來進行抽獎活動嗎?
可以。將您的參加者編號,設定對應的範圍,並在不重複的情況下抽出您需要的中獎人數。為了保持公平公開,您可以在產生數字時進行螢幕錄影。
會有任何資料傳送到伺服器嗎?
不會。數字都是在您的裝置上直接產生的。