@rahulv.dev/rng
Secure, cryptographic random number generation for Node.js and browsers. This package provides an easy-to-use interface for generating random numbers within specified ranges, leveraging the native Crypto API.
Features
- Generate a secure random number up to a specified upper limit.
- Generate secure random numbers for an array of upper limits.
Installation
Install @rahulv.dev/rng
using npm:
npm install @rahulv.dev/rng
or using yarn:
yarn add @rahulv.dev/rng
or using pnpm:
pnpm install @rahulv.dev/rng
Usage
Importing the module
import { RNG } from "@rahulv.dev/rng";
Initializing the RNG
Before using the RNG, you need to initialize it:
async function setupRng() {
const rng = await RNG.init();
return rng;
}
Generating a Random Number
To generate a random number within a specified range:
async function generateRandom() {
const rng = await setupRng();
const randomNumber = await rng.next(100);
console.log(randomNumber);
}
generateRandom();
Generating Multiple Random Number
To generate a random number within a specified range:
async function generateMultipleRandoms() {
const rng = await setupRng();
const randomNumbers = await rng.nextRange([10, 100, 1000]);
console.log(randomNumbers);
}
generateMultipleRandoms();
API Reference
Here’s a detailed look at the API methods provided by @rahulv.dev/rng
:
Method | Description | Parameters | Returns |
---|
RNG.init() | Static method to initialize the RNG. Returns an instance of RNG . | None | Promise<RNG> : An initialized RNG |
next(upperLimit) | Generates a secure random number between 0 and upperLimit - 1 . | upperLimit: number : The upper limit for the random number (exclusive) | Promise<number> : A random number within the specified range. |
nextRange(ranges) | Generates random numbers for an array of upper limits. | ranges: number[] : An array of upper limits. Each element specifies the exclusive upper limit for the corresponding random number. | Promise<number[]> : An array of random numbers, each within the range specified by the corresponding element in the input array. |
Usage Examples
Here is a complete usage examples of how to use the methods provided by @rahulv.dev/rng
:
import { RNG } from "@rahulv.dev/rng";
async function main() {
const rng = await RNG.init();
const randomNumber = await rng.next(100);
console.log(`Random Number: ${randomNumber}`);
const randomNumbers = await rng.nextRange([10, 100, 1000]);
console.log(`Random Numbers: ${randomNumbers.join(", ")}`);
}
main();
Contributing
Contributions are always welcome! Create an issue or raise a PR for contributing.
License
This project is licensed under the MIT License - see the LICENSE file for details.