feat: add random integer generation operation #2151
+165
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently there is NO easy/accurate way to generate random values of a specific range.
The existing "Pseudo-Random Number Generator" allows generation of bytes only, and processing that result into values of a specific range is difficult (see attempt at #1954).
This pull request adds "Pseudo-Random Integer Generator", an operation for generating random integers of a user defined range.
Number.MIN_SAFE_INTEGERtoNumber.MAX_SAFE_INTEGER.Crypto.getRandomValues()under the hood for cryptographic security. This is also consistent with the existing "Pseudo-Random Number Generator".Design Notes
BigIntduring random bytes generation for performance. This implementation stitches 32 bit integer values together under the hood.