隨機數字產生器是指任何能產生一個數值的程序或工具,該數值的結果無法從先前出現的數字中預測。在實務上,大多數線上產生器會從您設定的含首尾端點範圍中均勻抽取整數,最小值與最大值本身也都是有效的結果。現代基於瀏覽器的工具採用加密安全來源,讓輸出在選定範圍內保持公正,所有運算完全在您的裝置上進行,產生的逗號分隔字串可直接貼入試算表、聊天訊息或腳本中,無需註冊,也不會有任何資料離開頁面。

隨機數字在日常決策與小型專案中默默扮演著出乎意料重要的角色。老師需要排出打掃教室的輪流順序。社團想不用印製票券就公平抽出抽獎得主。開發人員需要測試表單的範例資料。遊戲主持人想要今晚場次的先攻順序。共同點在於:有人想要從一個明確範圍中無偏差地抽出一個值或一批值,而且現在就要,不想安裝軟體。從帽子裡撈數字確實能給人「真正隨機」的感覺,但無法擴展規模、難以稽核,而且當您一次需要抽 50 個時也會非常彆扭。

how to generate random numbers
how to generate random numbers

隨機數字產生器實際上在做什麼

隨機數字產生器的核心是接收三個輸入並回傳一份清單。三個輸入分別是:最小值、最大值,以及您想要的結果數量。兩個端點都符合資格:若您要求 1 到 10 之間的數字,1 或 10 與中間任何一個 7 一樣公平。在幕後,工具會從高熵來源抽取數值,套用均勻對應到您的範圍上,再輸出指定的數量。

「均勻」這個詞很重要。公平的產生器會將範圍內的每個整數視為機率相等,因此不會偏袒任何結果。這正是抽獎、抽樣或任何結果會因偏差而失效的任務所需要的特性。若工具悄悄偏袒特定輸出,或悄悄把結果湊成比較漂亮的數字,即使外觀看似精美,也無法通過這項檢驗。

隨機數字在實際工作中的應用

在教室、嗜好專案和小型辦公室中,反覆出現的就是那幾個使用情境。從下表中認出您的情境,通常是挑選正確設定的最快方式。

情境範例範圍數量允許重複?
從票券編號中抽出抽獎得主1 到 5001
問卷調查的樣本數1 到 100030
教室輪流順序1 到 2525
桌遊的骰子式擲骰1 到 205
彩票練習選號1 到 496
活動通行證的 PIN 碼1000 到 999950
表單的測試資料1 到 1000000500

「允許重複」是大多數人最容易忽略的一欄。從單一票券範圍中抽出抽獎得主時,結果絕不能重複。桌遊場次中 d20 的擲骰連續出現同一面則是完全合理的。許多工具預設允許重複,所以在按下按鈕前值得檢查一下這個設定。

如何用三個步驟產生隨機數字

最快的做法是開啟瀏覽器工具、填入範圍、然後取得輸出。想要更快跳進內建選項,隨機數字產生器能在同一頁內處理完整流程,無需註冊。

  1. 輸入您的最小與最大安全整數。兩個數值都是有效的結果,所以請將範圍視為完全包含端點。若要從編號 1 到 500 的票券中抽出得主,請輸入 1500
  2. 選擇您想要的結果數量,單次批次可從 1 到 1,000 任意設定,然後決定是否允許重複的數字。抽獎、抽樣或輪流順序請關閉重複;骰子式擲骰與壓力測試資料則保持開啟。
  3. 點擊產生按鈕,檢視螢幕上的逗號分隔輸出,然後複製到您的試算表、訊息或腳本中。由於運算在您的瀏覽器中執行,這些數值永遠不會離開您的裝置。

這就是完整的工作流程。真正重要的決定發生在點擊按鈕之前:什麼範圍符合您的問題、實際需要多少數值,以及是否能接受重複。

挑選正確的範圍與數量

您的範圍應對應到您實際抽樣的現實集合。從編號 1 到 500 的票券中抽出抽獎得主,範圍就是 1 到 500。從 1,000 人的名單中抽出 30 位客戶,就是範圍 1 到 1,000、數量 30,並關閉重複。產生 50 組介於 1000 到 9999 之間的 PIN 碼,就是範圍 1000 到 9999,並開啟重複。

一個簡單的防呆原則:當關閉重複時,數量不應超過範圍的大小。要求從 1 到 20 的範圍中取出 30 個不重複的數字是不可能的,好的工具會在產生前提出警告。要求從 1 到 1,000 中取出 30 個不重複的數字則游刃有餘,還綽綽有餘。

若要模擬骰子,數量通常比範圍更重要。d20 擲 5 次(1 到 20,允許重複)是一次完全合理的單批作業。若您想為 6 人隊伍排出先攻順序,請要求從 1 到 20 取出 6 個數字並關閉重複,這樣每位玩家都會獲得獨立的位置。

瀏覽器工具與程式碼、試算表的比較

程式碼與試算表函式各有其適用場景,值得快速比較一下,才能針對手邊的工作挑選正確的做法。

方法最適用於優點限制
線上瀏覽器工具單次抽籤、抽獎、教室使用、範例資料無需安裝、本機執行、範圍與數量控制簡單、輸出可直接複製需要瀏覽器,不適合內嵌自動化流程
試算表公式 (RAND、RANDBETWEEN)在活頁簿中反覆重新產生與其他資料並存,編輯時會自動重算試算表的隨機來源較弱,稽核性也較低
程式碼函式庫 (Python、JavaScript、MATLAB)程式化產生、大量批次、可重現的種子完全可控、可重複執行、輸出可腳本化需要程式設計環境與基本的語法熟悉度

若您日後想學習以程式碼為基礎的做法,我們關於在 MATLAB 中無需程式碼產生隨機數字的教學涵蓋了該環境中類似的流程。若想要從清單而非數值範圍中挑選的互補瀏覽器體驗,隨機姓名挑選轉盤將同樣的公平挑選概念應用於姓名。

運用相同概念的其他瀏覽器工具

隨機數字產生是更廣泛的公平挑選工具家族中的一個切片。硬幣正反面就是限制為 0 與 1 兩個值的隨機數字產生器。骰子擲骰器則是限制為骰子各面的隨機數字產生器,最常見的是 1 到 6 或 1 到 20。隨機隊伍產生器則是將名單分入群組中的隨機數字產生器。掌握這個模式能幫助您在不過度思考設定的情況下,順手挑選到正確的工具。

產生隨機數字時的常見陷阱

大多數「不夠隨機」的抱怨,追根究柢都是設定上的疏失,而不是工具損壞。漏掉重複開關是最經典的一項。當使用者在 1 到 49 的範圍中要 6 個彩票式數字卻開著重複時,有時會看到重複的數字,這看似壞掉了,其實正是獨立抽樣下的預期行為。關閉重複就能修正,無須改變背後的公平性。

第二個是範圍混淆。0 到 10 的範圍其實有 11 種可能結果,而不是 10 種,因為兩端都算在內。如果您想要剛好 10 種結果,範圍應該設為 1 到 10。在點擊前先算一下預期的結果數量,是最簡單的健全性檢查。

最後,留意輸出格式。逗號分隔的值可以乾淨地貼入試算表和聊天視窗,但若有一個換行或多餘的空格,可能會讓期待嚴格分隔符的腳本出錯。若要把輸出導入程式碼,請先看一下結果的第一個字元和最後一個字元,再決定是否採用。

瀏覽器產生器的隱私與公平性

公平性取決於背後的熵來源。信譽良好的瀏覽器工具採用加密安全的隨機來源,這代表同一個工具既能用在休閒抽獎,也能用在小額賭注的抽籤,而不會有人合理地質疑偏差。若某個工具悄悄在每次造訪時用相同的種子重新產生,或要求您將範圍送到遠端伺服器,那就做得比這個工作所需更多了。

隱私是另一個關鍵。由於運算在本機執行,最小值、最大值與產生的數字都不會離開您的裝置。對學校抽獎或小型社團抽籤來說,這正是您想要的特性:沒有誰抽了什麼的外部紀錄,沒有得獎號碼的分析追蹤,也沒有容易忘記的上傳步驟。若您想驗證某個工具確實在本機執行,請在頁面載入後中斷網路連線,然後試著產生一次。結果仍應正常出現。

實用設定的快速範例

以下是幾個值得記在腦中的常用設定:

  • 從 1 到 500 抽出抽獎得主:數量 1,關閉重複。
  • 28 位學生的教室輪流順序:範圍 1 到 28,數量 28,關閉重複。
  • 5 人桌遊場次的先攻順序:範圍 1 到 20,數量 5,關閉重複。
  • 活動用的 100 組 PIN 碼:範圍 1000 到 9999,數量 100,開啟重複。
  • 從 800 人名單中抽出 30 位客戶的樣本:範圍 1 到 800,數量 30,關閉重複。

一旦您實際操作過幾次,整個模式就會變得直覺:挑選對應現實集合的範圍、在關閉重複時選擇不大於範圍的數量,然後複製輸出。

結語

一個可靠的隨機數字產生器能把一類雖然小但常見的任務化約為三個輸入與一次點擊。設定一個對應您抽樣集合的範圍、挑選對任務合理的數量、決定是否能接受重複,其餘就交給工具處理。無論是抽獎、抽樣、教室排序、模擬骰子或測試資料,這個流程幾乎能涵蓋老師、活動主辦人、開發人員或遊戲主持人在忙碌下午可能遇到的所有需求。

想深入了解,請參閱在 Excel 中無需複雜公式產生隨機隊伍

想深入了解,請參閱如何放大 Tableau 中的圓餅圖

想深入了解,請參閱擲出 7 或 11 點:快速指南