A class for generating pseudo-random numbers.
    public class RandomNumberGenerator : Reference

RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses PCG32. The underlying algorithm is an implementation detail. As a result, it should not be depended upon for reproducible random streams across Godot versions.

Inheritance Chain


    public RandomNumberGenerator()


    public int Seed { get; set; }

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.


    public int GetSeed()

Getter for Seed

    public float Randf()

Generates pseudo-random float between ‘0.0’ and ‘1.0’, inclusive.

    public float Randfn(float mean = 0f, float deviation = 1f)

Generates normally(gaussian) distributed pseudo-random number, using Box-Muller transform with the specified mean and a standard deviation.

    public float RandfRange(float from, float to)

Generates pseudo-random float between from and to, inclusive.

    public int Randi()

Generates pseudo-random 32-bit unsigned integer between ‘0’ and ‘4294967295’, inclusive.

    public int RandiRange(int from, int to)

Generates pseudo-random 32-bit signed integer between from and to (inclusive).

    public void Randomize()

Setups a time-based seed to generator.

    public void SetSeed(int seed)

Setter for Seed