Excel 內建三個原生隨機函數——RAND、RANDBETWEEN 和 RANDARRAY——它們之間的差異決定了你會得到介於 0 到 1 之間的小數、所選範圍內的整數,還是一次填滿整個儲存格區塊的陣列值。這些公式無需任何外掛即可運作,但每次活頁簿重新計算時,它們也會跟著重新計算——這對大多數讀者來說正是他們需要的,卻也正是某些讀者想要避免的。本指南會以具體語法逐步介紹每個內建方法,然後介紹一個基於瀏覽器、本機運作的隨機數字產生器,它可以根據你定義的範圍產生 1 到 1,000 個整數,讓你直接貼入試算表。將兩種方式並列比較,有助於你為課堂抽籤、隨機化測試資料、公平排序挑選,以及任何需要在 Excel 中取得不可預測整數或小數的日常任務,挑選最合適的方法。答案的形式取決於你是否只需要整數、是否需要小數、需要單一值還是一組值,以及對於你正在建立的活頁簿來說,重新計算是個功能還是個麻煩。

在 Excel 中產生隨機數字的三種內建方法
Excel 的三個內建函數無需任何設定即可涵蓋常見情況。每個函數都是 volatile(易變)的,代表每次工作表重新計算時,數值都會改變,所以請記住,按下 F9、輸入資料,或在另一台電腦上開啟檔案,都會產生一組新的抽樣結果。
- RAND()——傳回一個大於或等於 0 且小於 1 的均勻分佈實數。在儲存格中輸入 =RAND() 後按 Enter,就會看到類似 0.3742 的結果。可以透過乘法或加法重新映射範圍:=RAND()*100 會產生 0 到 100 之間的數字,而 =RAND()*50+10 會產生 10 到 60 之間含小數的數字。當你的版本無法使用 RANDBETWEEN 時,可以將其包入 =INT(RAND()*100)+1 來產生 1 到 100 之間的整數。
- RANDBETWEEN(min, max)——傳回介於上下限之間(含兩端)的單一整數。使用 =RANDBETWEEN(1, 100) 可進行擲骰子式的抽樣,或當需要負數時使用 =RANDBETWEEN(-50, 50)。這是在任何支援此函數的 Excel 版本中取得整數的最短路徑。
- RANDARRAY(rows, columns, min, max, integer)——一次填滿一個範圍。=RANDARRAY(10, 1, 1, 50, TRUE) 會在一欄中寫入十個介於 1 到 50 的整數,而 =RANDARRAY(5, 5) 會在 5×5 的區塊中寫入二十五個介於 0 到 1 之間的小數。將第五個參數設為 FALSE 或省略即可產生小數,設為 TRUE 則產生整數。RANDARRAY 屬於動態陣列家族,需要 Excel 365 或 Excel 2021。
如果你需要從一個小範圍中取得不重複的整數,可以使用 =SEQUENCE 設定數量,然後將合併後的範圍餵入「資料」索引標籤中的「移除重複」,或是將 RANDARRAY 的輸出與輔助排序結合。內建的隨機函數本身並不保證唯一性。一旦你有了隨機清單,它通常會被餵入另一個 Excel 工作流程,例如將名單平均分成幾組——請參考這份在 Excel 中產生隨機隊伍的指南,從同一個起點進行下一步。
使用本機瀏覽器工具產生隨機整數
對於必須保存固定數字的活頁簿、每位學生都必須拿到相同起始題目的課堂,或是範圍與數量不適合寫成公式的情況,基於瀏覽器的產生器可以徹底消除重新計算的問題。這個隨機數字產生器接受整數上下限,並回傳以逗號分隔的清單,一鍵即可複製到剪貼簿,而且因為運算完全在本機瀏覽器分頁中執行,不會有任何資料被傳送到伺服器。
- 在兩個上下限欄位中輸入安全整數的最小值與最大值;由於兩端都是可能的結果,所以同一個範圍中的 1 和 10 都可能出現在輸出裡。
- 選擇每次操作要產生幾個結果(從 1 到 1,000),並透過畫面上的切換開關決定是否允許重複。
- 選擇產生數字 (Generate numbers);以逗號分隔的清單會出現在下方,可用標準剪貼簿快捷鍵直接選取並複製。
- 切換回 Excel,點擊目標儲存格,然後使用 Ctrl+V 貼上,或使用「選擇性貼上」,如果你想貼上不含尾端分隔符號的純值。
若要在 Excel 中快速進行純文字清理,請將貼上的值放入單一儲存格,然後在「資料」索引標籤上以逗號作為分隔符號執行「資料剖析」(Text to Columns),如果工具剛好每行產生一個值,也可以直接貼入一列或一欄。更動任何上下限、數量或重複設定時,都會清除先前的清單,因此舊結果絕對不會被誤認為新的輸出。
將產生的數字移入 Excel 而不讓工作表重新計算
公式型隨機數字與貼上值之間,最關鍵的實際差異在於「不穩定性」(volatility)。每當活頁簿開啟、其相依鏈中的某個儲存格變更,或你按下 F9 強制重新計算時,每個公式都會重新計算。貼上的數字則會固定不動。以下三種模式可涵蓋大多數實際情況:
- 將公式鎖定一次。輸入一個易變的公式,例如 =RANDBETWEEN(1, 100),複製該儲存格,然後使用選擇性貼上 > 只貼上值(在較舊的 Excel 版本中為 Alt, E, S, V)貼回。顯示的數字會保留,但不穩定性會消失,該儲存格的行為就像任何其他靜態值一樣。
- 在瀏覽器中產生,在 Excel 中貼上。使用隨機數字產生器抽出一組清單,點擊第一個目標儲存格,然後貼上。如果你需要將列轉成欄(反之亦然),請選擇選擇性貼上 > 轉置。
- 分割以逗號分隔的清單。將以逗號分隔的字串貼入單一儲存格,然後以逗號作為分隔符號執行資料 > 資料剖析。每個整數會落入各自的儲存格,完全沒有任何試算表函數進行計算,因此從那一刻起數值就會固定不動。
貼上的值可以像手動輸入的數字一樣與排序、篩選、設定格式化的條件、圖表和樞紐分析表整合,因此活頁簿的其餘部分不需要改變。貼上與公式之間的選擇,大致上取決於你希望活頁簿持續產生新的數字,還是要鎖定某一組特定的抽樣結果。
哪種方法適合哪種任務
每種方法都有其甜蜜點。下表摘要說明內建函數擅長的場景,以及基於瀏覽器的產生器何時是更簡單的選擇。任何特定抽樣的確切數量與數字,都直接來自工具本身,而不是在頁面上計算出來的。
| 任務 | 最佳方法 | 原因 |
|---|---|---|
| 用於機率檢查的單一小數 | =RAND() | 原生函數,可為重複的蒙地卡羅試驗重新計算 |
| 小範圍內的一個整數 | =RANDBETWEEN(1, N) | 最短語法,兩端都包含 |
| 一次產生整個整數區塊 | =RANDARRAY(rows, cols, min, max, TRUE) | 在現代 Excel 中,一個公式就能填滿整個範圍 |
| 負數邊界、混合範圍、1 到 1,000 個結果 | 隨機數字產生器 | 包含兩端、僅在瀏覽器中執行、以逗號分隔輸出 |
| 之後絕不能變更的結果 | 瀏覽器工具加上選擇性貼上 > 值 | 消除公式帶來的不穩定性 |
| 小範圍內的不重複整數 | 關閉重複的瀏覽器工具,然後排序 | 工具保證單次抽樣中沒有重複 |
| 受規範的抽獎、需要稽核的挑選 | 經過稽核的專業系統 | 瀏覽器工具依設計並不發布稽核軌跡 |
為什麼瀏覽器工具在整個範圍內能保持不偏
自製隨機腳本中常見的失敗是模數偏差(modulo bias):當範圍大小無法整除隨機來源大小時,較小的數字出現的頻率會略高於較大的數字。瀏覽器產生器透過從 Crypto.getRandomValues 取出 32 位元的字、將其中兩個組合成一個 53 位元的非負整數,然後在映射到所要求的範圍之前,丟棄任何會落入未完成尾段的數值,藉此避免這種偏差。被接受的數值會均勻分佈,因此在包含兩端的範圍中,每個整數所對應的可能原始數值數量是相同的。
當允許重複時,每次抽樣都是獨立的,同一個數字可能會在單一輸出中出現多次——這對重複模擬,或是先前結果仍應保有資格的事件來說,是正確的行為。當關閉重複時,一個稀疏的部分費雪–耶茲洗牌演算法會依照你要求的數量(而非範圍大小)成比例地在記憶體中選出不重複的偏移量,因此從一百萬個整數的範圍中挑出 50 個不重複的值時,執行起來仍然很快。驗證會在抽樣之前完成:非整數的輸入、空白欄位、上下限相反、無限大、不安全整數,以及要求的不重複數量大於範圍所能容納的請求,都會以清楚的錯誤訊息被拒絕。
輸入僅限於 JavaScript 的安全整數,因為較大的數值文字並非總能由一般的瀏覽器數字精確表示,且包含兩端的範圍本身必須具有能精確表示的安全整數大小。如果你的任務超出這些限制——極端的數量、加密金鑰、簽署稽核,或超出安全整數範圍的值——請改用具備此用途的工具。對於一般的課堂、抽籤、測試資料與挑選工作,包含兩端、數量與重複切換這三者的組合,幾乎涵蓋了所有實際情況。
限制、錯誤與何時應改用其他工具
每個 Excel 方法都有其上限。RAND 與 RANDBETWEEN 會在每次重新計算時改變,一旦你需要穩定的紀錄,它們就失去用處。RANDARRAY 需要 Excel 365 或 2021;如果活頁簿會在較舊的版本之間流通,動態陣列的溢出結果與傳統輸入範圍看起來會不一樣。瀏覽器產生器將每次操作的上限設為 1,000 個結果,並拒絕所要求的不重複數量大於包含兩端的範圍所能容納的抽樣——因此,在 1 到 3 的範圍中要求五個不重複的結果時,會回報為「不可能」,而不是悄悄回傳較少的數字。
針對重要挑選的一項實用防護:此工具刻意保持簡單,並明確不發布種子、簽署紀錄、外部隨機性信標或可重現的稽核軌跡。課堂抽獎、原型模擬、隨機化測試資料、排序挑選與遊戲設定,正是它的適用情境。任何事後需要能夠提出辯護的事情——涉及法律責任的獎項抽取、存取控制、密碼或權杖產生,或受規範的彩票抽籤——都應遵循你組織要求的獨立程序,而不是依賴瀏覽器分頁。如有疑慮,請將任何這些方法產生的隨機輸出視為更大流程的便利輸入,而不是最終的權威依據,並將產生器與該情境所需的任何驗證步驟搭配使用。
若想深入了解,請參閱從 Excel 清單中取得最新日期。