跳至内容

Excel 随机数生成器:3 种不同方法

在 Excel 中生成随机数的方法有多种,例如 `RAND(),` `RANDBETWEEN(),` 和 `RANDARRAY()` 函数。
已更新 2026年10月6日  · 6分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

随机数在 Excel 中应用广泛,例如用于模拟与假设检验。本文将带您逐步了解生成随机数的不同方法。我们先从 RAND() 和 RANDBETWEEN() 等基础函数开始,再介绍更高级的 RANDARRAY()。读完后,您将清楚地知道如何使用这些函数,以及在不同场景下如何进行选择。

Excel 随机数函数概览

Excel 可以生成介于 0 和 1 的小数、位于某个区间的整数,甚至是整张随机数表。我们来看三种实现方式:

RAND() 函数

RAND() 函数返回介于 0 与 1 之间的随机小数。它是一个重要函数,因此我们也将其收录在人人都该掌握的 15 个 Excel 基本公式中。

要生成 0 到 1 之间的随机小数,只需在任意单元格输入 =RAND()。如果需要更多随机数,可以拖动填充到其他行。

在 Excel 中使用 RAND 函数生成随机数。

使用 RAND() 生成随机数。图片来源:作者。


您还可以用 RAND() 生成不同类型的数值,例如:

  • 生成特定范围内的随机数:使用公式 RAND() * N。其中 N 可为任意值。

  • 在任意两数之间生成随机数:使用公式 RAND() * (b - a) + a. 其中 b 为上限,a 为下限。结果始终小于 b 值。

  • 生成整数而非小数:将上述公式再套入 INT() 函数。

=RAND()*100
=RAND()*(20-10)+10
=INT(RAND()*(20-10)+10)

在 Excel 中用 RAND() 函数生成随机整数。

使用 RAND() 生成随机整数。图片来源:作者。

需要注意的是,每当表格有新输入时,这些数值都会更新。如果您想固定这些数值,请使用选择性粘贴 > 数值(后文还会提到)。

RANDBETWEEN() 函数

RANDBETWEEN() 用于在给定范围内生成随机整数。其语法为:

=RANDBETWEEN(bottom, top)

bottom 表示下限,top 表示上限。

例如,若我想生成 10 到 20 之间的整数,可以使用如下公式:

=RANDBETWEEN(10,20)

在 Excel 中使用 RANDBETWEEN() 生成随机数

使用 RANDBETWEEN() 生成随机数。图片来源:作者。

您会注意到,使用 =INT(RAND()*(20-10)+10) 也能得到相同结果。但我更偏好 RANDBETWEEN(),因为它是为此类任务而设计的、更简洁的 RAND() 升级版。用 RAND() 想在两值之间得到随机整数,需要写较长的公式;而有了 RANDBETWEEN(),一步即可完成。

RANDARRAY() 函数

RANDARRAY() 在 Excel 365 中引入。它返回一组随机数,允许我们指定要填充的数值数量、行数与列数——无需拖动公式——并可选择返回小数或整数。

=RANDARRAY([rows],[columns],[min],[max],[whole_number])

含义如下:

  • rows 指要填充的行数。

  • columns 指要填充的列数。

  • min 指定下限。

  • max 指定上限。

  • whole_number 设为 TRUE 返回整数,设为 FALSE (或留空)返回小数。

来看一个实际示例。假设我想在 4 列 × 6 行的区域内生成 10 到 20 的随机小数,公式为:

=RANDARRAY(6,4,10,20)

若要生成整数,公式为:

=RANDARRAY(6,4,10,20,TRUE)

这样,每次刷新工作表都会生成新的数值。

在 Excel 中用 RANDARRAY() 函数生成随机数。

使用 RANDARRAY() 生成随机数。图片来源:作者。

各函数的快速对比 

以下是三种函数的快速对比:

特性 RAND() RANDBETWEEN() RANDARRAY()
输出类型 小数 指定范围内的整数 小数或整数
是否可指定范围 否 是 是
是否可一次返回多值 否 否 是
适用版本 所有版本(Excel 365 - 2000) Excel 365 - 2007 Excel 365 - 2021

Excel 随机数生成器的特定用法 

下面通过几个实际示例,看看随机数生成器可用于哪些场景。

生成不重复的随机数

有时我们需要生成不重复的随机数。虽然 Excel 没有直接的单一函数,但可以组合两种方法:

  1. RAND() 与 RANK.EQ() 搭配

  2. RANDARRAY() 与 UNIQUE() 搭配 

假设我需要 10 个不重复的随机数。首先在A2 单元格输入 RAND() 生成随机数,并向下拖动至A10。然后在B2 中,为得到唯一值,输入以下公式:

=RANK.EQ(A2,$A$2:$A$10)

在 Excel 中结合 RANK.EQ 和 RAND 生成不重复随机数。

使用 RANK.EQ() 生成不重复随机数。图片来源:作者。

另一种方式是将 RANDARRAY() 套入 UNIQUE()。下面我用该公式生成 1 到 20 的 10 个不重复随机数:

=UNIQUE(RANDARRAY(10,1,1,20,TRUE))

在 Excel 中结合 UNIQUE 和 RANDARRAY 生成随机数。 

使用 UNIQUE() 与 RANDARRAY() 生成随机数。图片来源:作者。

注意:UNIQUE() 与 RANDARRAY() 仅适用于 Excel 365 和 2021。想保持与时俱进,可学习我们的 Excel Fundamentals 路线。

按特定分布生成数值

Excel 也能按特定分布生成随机数,例如正态分布,这在进行蒙特卡罗模拟时很有用。您可以使用 NORM.INV()。

=NORM.INV(probability, mean, standard deviation)

其中: 

  • probability 为 0 到 1 之间的随机小数 (RAND())。

  • mean 为数值应聚集的均值。

  • standard deviation 表示数值围绕均值上下波动的幅度。

例如,我想为一班学生生成随机测验分数,设定平均分为 75。大多数学生在均值上下 10 分内(即分数大多介于 65 到 85)。于是我对所有行应用如下公式:

=NORM.INV(RAND(), 75, 10)

在 Excel 中用 NORM.INV 函数生成正态分布。

使用 NORM.INV() 生成正态分布。图片来源:作者。

数据匿名化与测试

我们还可以用随机数替换敏感数据(如账号或电话号码),用于测试或数据隐私保护。

如下有一组账号,我想匿名化账号的前四位数字,于是用以下公式将其替换为一般性的随机数字:

=REPLACE(A2,1,4,RANDBETWEEN(1,4))

在 Excel 中用 RANDBETWEEN 随机数隐藏/匿名化敏感数据。

用随机数隐藏敏感数据。图片来源:作者。

辅助快速决策

这或许出乎意料,但我们也可以用随机数来快速决策。比如,要从一长串名单中随机抽取一名获奖者,可在给定范围中随机提取姓名。

下面,我在 A2 到 A10 单元格有一份抽奖名单,需要选出一位获奖者。为此,我在 C2 输入以下公式,即可随机选出一人:

=INDEX(A2:A10, RANDBETWEEN(1, 11))

在 Excel 中用 RANDBETWEEN 从列表随机抽取姓名。

随机选出一位获奖者。图片来源:作者。

如何防止随机数重新计算

随机数的一个问题在于,只要工作表更新,它们就会变化。如果您想固定这些数值,可将其转换为静态值。有两种方法:

  • 选中随机数区域,按Ctrl + C复制,然后右键选择选择性粘贴 > 数值。
  • 若仅想停止某个单元格的重新计算,选中该单元格并在编辑栏按F9。

了解 Excel 的随机数算法

如果您好奇 Excel 随机数函数的底层原理,这里简单介绍一下。

自 Excel 2010 起,Microsoft Excel 使用梅森旋转(Mersenne Twister)算法来生成随机数。它能产生通过多种统计检验的高质量随机数。最常用的版本之一是 MT19937,基于一种称为梅森素数的特殊质数。

在采用 Mersenne Twister 之前,曾使用过中平方法(middle-square method)。该方法将一个数平方,并取其中间位数作为随机数。尽管由天才约翰·冯·诺依曼提出时颇具巧思,但后来发现其会产生模式,甚至可能陷入重复,故被 Mersenne Twister 所取代。

结语 

本文介绍了在 Excel 中生成随机数的多种方式:从用 RAND() 生成小数,到用 RANDBETWEEN() 生成整数,再到用 RANDARRAY() 生成整表的随机值。

若想进一步学习如何在 Excel 中处理数据,请查看我们的 Data Preparation in Excel 与 Data Visualization in Excel 课程。此外,点击下方的 Excel Fundamentals 路线——无需任何基础。


Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。

主题
Excel
数据分析

在 DataCamp 学习 Excel

课程

在 Excel 中进行数据准备

3 小时
95.8K
掌握如何通过逻辑函数、嵌套公式、查找函数和 PivotTables 准备 Excel 数据。
查看详情Right Arrow
开始课程
查看更多Right Arrow