On this page
@std/random
Unstable
This @std package is experimental and its API may change without a major version bump.
Overview Jump to heading
Utilities for generating random numbers.
import { randomIntegerBetween } from "@std/random";
import { randomSeeded } from "@std/random";
import { assertEquals } from "@std/assert";
const prng = randomSeeded(1n);
assertEquals(randomIntegerBetween(1, 10, { prng }), 3);
Add to your project Jump to heading
deno add jsr:@std/random
See all symbols in @std/random on
为什么使用 @std/random? Jump to heading
随机数生成对于模拟、游戏、抽样和随机算法非常有用。本包既提供了常见使用场景的便捷函数,也提供了通过种子创建可复现伪随机序列的方式。
示例 Jump to heading
import { randomIntegerBetween, randomSeeded } from "@std/random";
const prng = randomSeeded(123n);
const roll = randomIntegerBetween(1, 6, { prng });
提示 Jump to heading
- 为了实现可复现的测试和模拟,使用
randomSeeded(seed)并将 PRNG 传递给辅助函数。 - 对于对安全敏感的随机数(令牌、密钥),请使用 Web Crypto API(
crypto.getRandomValues),而不是伪随机数生成工具。 - 像
randomIntegerBetween这样的分布辅助函数包括上下界;在 API 文档中说明这一点以避免越界一的混淆。