Excel 內建的三個用於在指定範圍內產生隨機數的公式分別是:=RANDBETWEEN(bottom, top) 用於整數、=INT(RAND()*(top - bottom + 1)) + bottom 用於明確控制,以及 =RANDARRAY(rows, columns, min, max, TRUE) 用於批次整數。每一個公式在設計上都會在每次重新計算時回傳新的抽樣結果,而這正是「how to generate random numbers in Excel within a range」這個搜尋背後的潛在問題。

在試算表儲存格中產生隨機數雖然方便,但其值是一個公式,而不是一個穩定的數字。在任何其他儲存格按下 F2 再按 Enter、重新整理樞紐分析表,或重新開啟活頁簿,結果就會被同一範圍內的新抽樣所取代。任何建立在這些值之上的東西,例如抽籤用的種子清單、隨機化的測試資料或洗牌順序,都會在不知不覺中悄悄地改變。除非額外加入邏輯,否則重複值也無法避免,而且沒有內建方法可以拒絕重複,也無法擴展到在一個非常寬廣的範圍內產生數百個不重複的值。

一個小型、純瀏覽器的隨機數產生器能解決 Excel 無法處理的部分。輸入最小值、最大值,以及您想要抽幾組數字,複製以逗號分隔的輸出,然後以靜態值的方式貼到工作表中。數字會留在您放置的位置,邊界為包含式,可選的重複值防護僅佔用 O(count) 的記憶體,而瀏覽器的 Web Crypto 熵搭配拒絕抽樣法,能保持對應的無偏差性。

how to generate random numbers in excel within a range
how to generate random numbers in excel within a range

在 Excel 中於指定範圍產生隨機數的三種公式

Excel 提供三種在範圍內產生隨機整數的公式路徑,選擇哪一種主要取決於您從單一輸入點需要多少數值。

RANDBETWEEN

最簡單的範圍函數是 =RANDBETWEEN(bottom, top)。兩個引數都是包含式,因此 =RANDBETWEEN(1, 100) 會以相等機率回傳 1 到 100 之間的任何整數,抽到 1 或 100 的機率與抽到 47 的機率相同。點選一個儲存格、輸入公式、按下 Enter,然後拖曳填滿控點(或使用 Ctrl + D)即可填入一整欄獨立的抽樣結果。

RAND 搭配 INT

當您想檢查中間運算,或在較舊的 Excel 版本中沒有 RANDARRAY 可用時,手動搭配的 =INT(RAND()*(top - bottom + 1)) + bottom 會產生與 RANDBETWEEN 相同的包含式整數分佈。RAND() 會回傳 [0, 1) 範圍內的小數,外層的算術會將其重新縮放並無條件捨去。當您想記錄單一可重現的種子而非最終整數時,這種形式也很方便。

RANDARRAY

在 Excel 365 和 Excel for the web 中可使用 =RANDARRAY(rows, columns, min, max, whole_number),單一公式就能輸出整個隨機整數陣列。將 whole_number 設為 TRUE 時,=RANDARRAY(20, 1, 1, 50, TRUE) 會在 20 列 1 欄的溢出範圍中寫入 20 個 1 到 50 的隨機整數,完全不需要填滿控點。

Excel 隨機函數的不足之處

公式方式雖然快速,但有幾個實際任務與它配合得並不順暢。

  • 穩定性:每次重新計算都會產生新的抽樣結果。按下 F9、編輯任何無關的儲存格、重新整理樞紐分析表,或重新開啟活頁簿,整個範圍就會在您背後重新洗牌。
  • 不重複的抽樣:沒有內建旗標可以拒絕重複值。若要在儲存格中產生 30 個從 1 到 30 的不重複數字,必須使用輔助欄、輔助公式,或手動進行清理。
  • 規模:RANDARRAY 會溢出到一個連續區塊。如果您需要將 200 個隨機數放在分散的儲存格中,或將 500 個數字排列成非矩形的樣式,溢出的行為就會造成阻礙。
  • 交接:公式終究還是公式。若要凍結數值,讓協作者看到固定的數字,您必須複製並使用「選擇性貼上 > 值」,將每個公式替換為它最近一次產生的整數。

對於一次性的教室座位表或快速模擬,這樣的權衡是可以接受的。但對於您打算分享、記錄、稽核或貼到更長活頁簿中的內容,這種不穩定性就會成為真正的負擔。

使用隨機數產生器在 Excel 範圍內產生隨機數

當目標是範圍內的一組穩定整數時,瀏覽器工具可以為工作表提供現成的數值。隨機數產生器接受包含式的邊界、1 到 1,000 的明確數量,以及可選的重複規則,然後輸出以逗號分隔的文字,您可以直接貼到一整欄中。

  1. 在瀏覽器中開啟隨機數產生器。
  2. 在最小值欄位中輸入允許的最小整數。對於負數邊界請加上負號,因為兩端都可能為負,或範圍可能跨越零。
  3. 在最大值欄位中輸入允許的最大整數。兩個端點都可以出現在輸出中,因此當範圍為 1 到 100 時,1 和 100 都是有效的結果。
  4. 選擇結果數量,從 1 到 1,000 都可以。如果關閉重複值,數量不能超過範圍的包含式大小;一旦超過,工具會發出警告。
  5. 決定是否允許重複值。針對獨立的抽樣保留重複值開啟(每個先前的結果仍然有效)。關閉重複值則用於選取不同的位置、識別碼或編號過的參與者。
  6. 點選產生數字。輸出會以逗號分隔的整數顯示在控制項下方,任何輸入的變更都會清除先前的清單,因此舊的結果不會被誤認為新的抽樣。
  7. 反白選取輸出並複製。
  8. 在 Excel 中,點選目的地範圍的左上角儲存格並貼上。如果貼上後是文字字串,請選取目的地,執行資料 > 文字至欄,並以逗號作為分隔符號,Excel 就會立即將其轉換為純數字。

因為輸出是純文字而不是即時公式,這些數值會留在您放置的位置。工作表的編輯、重新計算和樞紐分析表的重新整理都無法重洗它們。

隨機數產生器與 Excel 公式的比較:何時該用哪一個

兩種方法都能從所選範圍產生整數。決定因素在於穩定性、數量,以及您是否需要強制不重複。

能力Excel 公式儲存格隨機數產生器
執行位置在已開啟的活頁簿中在目前的瀏覽器分頁中
數值穩定性任何活頁簿變更都會重新計算複製後為靜態文字
預設數量每個儲存格一個,或一個溢出陣列每次點選 1 到 1,000 個
重複值永遠可能可選,當不可能時會清楚提示錯誤
包含式端點兩端皆包含兩端皆包含
負數邊界支援當邊界與範圍大小為安全整數時支援
強制不重複未內建稀疏部分洗牌,O(count) 記憶體
輸出格式儲存格中的即時公式可複製的逗號分隔文字
離開您裝置的資料無,純瀏覽器

當隨機值需要跟著公式變動時,請使用 Excel 公式,例如應根據輸入重新整理的蒙地卡羅模擬、會依新參數更新的儀表板,或敏感度分析表。當您想要一份穩定、可供稽核的清單貼到不想被悄悄重洗的工作表時,請使用瀏覽器工具。

範圍限定隨機數的實用案例

大多數搜尋「how to generate random numbers in Excel within a range」的讀者,都是在解決一組數量有限的重複性問題。

抽樣與稽核

稽核人員會從編號過的母體中抽取小樣本,以檢查交易、索賠或庫存列。在關閉重複值的情況下,隨機數產生器可以提供給 Excel 一組 N 個從 M 大小母體中抽出的不重複編號,適用於隨機選取和可重現性的註記。

教室與訓練設定

隨機座位表、點名順序、分組作業和隨堂測驗小組,都能受益於一旦記錄就不會改變的數字。穩定的隨機數也能在無可避免的「寄一份給我」的電子郵件往返中存活下來,以及在有人關閉檔案的瞬間保持不變。

遊戲與測驗設計

賓果喊號、骰子的替代品、提示卡組和尋寶遊戲的線索順序,都可以一次產生後列印、張貼或釘在專案看板上,而不會在 Excel 重新計算時重洗。對於對應熟悉骰面(如 d6 或 d20)的骰子式隨機性,同樣採用純瀏覽器風格的專用骰子產生器可以直接處理這種情況。

測試資料樣板

開發人員和 QA 工程師會建立包含數千個逼真列的試算表,例如識別碼、分數或狀態代碼。從 1 到 1,000,000 中一次性抽出 1,000 個不重複整數,可以提供多樣化的種子資料,無需在各儲存格間複製貼上值,也無需編寫產生器腳本。

產生器如何消除模偏差

從均勻小數產生均勻整數看似簡單,卻隱含一個微妙的陷阱。如果 32 個隨機位元給您一個介於 [0, 4,294,967,295] 的數字,而您取其除以 10 的餘數,輸出分佈並不完全平均,因為 4,294,967,296 不是 10 的倍數。

具體的算術如下:

4,294,967,296 ÷ 10 = 429,496,729 餘 6

在餘數為 6 的情況下,天真的模對應方式會將十個數字中的六個各多分配一個來源值,使得這六個數字出現的機率略高於其他四個。隨機數產生器完全避免了這種情況。它從瀏覽器的 Crypto.getRandomValues 介面取得原始位元,將多個 32 位元字組合成一個精確可表示的 53 位元非負整數,捨棄落在不完整模尾部的任何值,重新抽取,然後才將被接受的值對應到所要求的包含式範圍中。範圍內每個倖存的整數都會獲得相同數量的已接受原始值,因此輸出分佈保持均勻。

同樣的謹慎也適用於不重複的抽樣。它不會為範圍中可能極大的每個整數建立陣列,而是執行稀疏部分 Fisher-Yates 洗牌,僅選取所需的偏移量,因此記憶體成本與您要求的數量成正比,而不是與範圍大小成正比。

如果您正在權衡選項,Food Roulette:從 24 個隨機點子中挑選一餐對此有詳細介紹。

如果您正在權衡選項,逐步在 Excel 中建立 Yes 或 No 下拉式清單對此有詳細介紹。