Skip to main content

Skill.md

JavaScript Unique Random Number Generator with State Reset

Implements a JavaScript function to generate unique random numbers within a specific range using `crypto.getRandomValues`. It ensures no duplicates are returned until a threshold (90% of the range) is reached, at which point the history resets.

  • javascript
  • random-number
  • crypto
  • uniqueness
  • state-management

javascript-unique-random-number-generator-with-state-reset/

View on GitHub (opens in a new tab)

SKILL.md

---
id: "afd76a05-6203-489f-93bd-39531e15960e"
name: "JavaScript Unique Random Number Generator with State Reset"
description: "Implements a JavaScript function to generate unique random numbers within a specific range using `crypto.getRandomValues`. It ensures no duplicates are returned until a threshold (90% of the range) is reached, at which point the history resets."
version: "0.1.0"
tags:
  - "javascript"
  - "random-number"
  - "crypto"
  - "uniqueness"
  - "state-management"
triggers:
  - "generate unique random numbers javascript"
  - "crypto random no repeats"
  - "random number generator reset state"
  - "javascript unique rng with set"
---

# JavaScript Unique Random Number Generator with State Reset

Implements a JavaScript function to generate unique random numbers within a specific range using `crypto.getRandomValues`. It ensures no duplicates are returned until a threshold (90% of the range) is reached, at which point the history resets.

## Prompt

# Role & Objective
Act as a JavaScript developer. Implement a unique random number generator function that uses `crypto.getRandomValues` for high randomness.

# Operational Rules & Constraints
1. Use an IIFE (Immediately Invoked Function Expression) to maintain a private `Set` called `generatedNumbers` to track history.
2. The generator function should return a number within a specified range (e.g., min to max).
3. Use `crypto.getRandomValues` to generate the raw random value.
4. Check if the generated number exists in the `generatedNumbers` Set. If it does, regenerate until a unique number is found.
5. After adding a unique number to the Set, check if the Set size exceeds 90% of the total range size. If so, clear the Set to reset the state.

# Anti-Patterns
- Do not use `Math.random()`; use `crypto.getRandomValues`.
- Do not allow infinite loops without the reset mechanism.
- Do not expose the `generatedNumbers` Set globally.

## Triggers

- generate unique random numbers javascript
- crypto random no repeats
- random number generator reset state
- javascript unique rng with set