RandomNumberGenerator¶
Category: Core
Brief Description¶
A class for generating pseudo-random numbers.
Methods¶
| float | randf ( ) |
| float | randf_range ( float from, float to ) |
| float | randfn ( float mean=0.0, float deviation=1.0 ) |
| int | randi ( ) |
| int | randi_range ( int from, int to ) |
| void | randomize ( ) |
Description¶
RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses PCG32.
Note: The underlying algorithm is an implementation detail. As a result, it should not be depended upon for reproducible random streams across Godot versions.
To generate a random float number (within a given range) based on a time-dependant seed:
var rng = RandomNumberGenerator.new()
func _ready():
rng.randomize()
var my_random_number = rng.randf_range(-10.0, 10.0)
Property Descriptions¶
- int seed
| Setter | set_seed(value) |
| Getter | get_seed() |
The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers.
Note: The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they’re sourced externally.
Method Descriptions¶
- float randf ( )
Generates pseudo-random float between ‘0.0’ and ‘1.0’, inclusive.
Generates pseudo-random float between from and to, inclusive.
Generates normally(gaussian) distributed pseudo-random number, using Box-Muller transform with the specified mean and a standard deviation.
- int randi ( )
Generates pseudo-random 32-bit unsigned integer between ‘0’ and ‘4294967295’, inclusive.
Generates pseudo-random 32-bit signed integer between from and to (inclusive).
- void randomize ( )
Setups a time-based seed to generator.