Skip to main content
On this page

@std/random

不稳定

此 @std 包是试验性的,其 API 可能会在不进行大版本更新的情况下更改。

概览 Jump to heading

用于生成随机数的实用工具。

生成带固定种子数的随机整数示例:

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);

生成两个值之间随机整数的示例:

import { randomIntegerBetween } from "@std/random";
import { randomSeeded } from "@std/random";

const prng = randomSeeded(BigInt(crypto.getRandomValues(new Uint32Array(1))[0]!));

const randomInteger = randomIntegerBetween(1, 10, { prng });

添加到您的项目 Jump to heading

deno add jsr:@std/random

查看 @std/random 中的所有符号

为什么使用 @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 文档中说明这一点以避免越界一的混淆。

你找到了你需要的东西吗?

编辑此页面
隐私政策