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

RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses [url=http://www.pcg-random.org/]PCG32[/url].

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:

[codeblock]

var rng = RandomNumberGenerator.new()

func _ready():

rng.randomize()

var my_random_number = rng.randf_range(-10.0, 10.0)

[/codeblock]

Inheritance Chain

Constructors

    public RandomNumberGenerator()

Properties

    public ulong 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.

Methods

    [Obsolete("GetSeed is deprecated. Use the Seed property instead.")]
    public ulong GetSeed()

    public float Randf()

Generates a pseudo-random float between 0.0 and 1.0 (inclusive).

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

Generates a [url=https://en.wikipedia.org/wiki/Normal_distribution]normally-distributed[/url] pseudo-random number, using Box-Muller transform with the specified mean and a standard deviation. This is also called Gaussian distribution.

    public float RandfRange(float from, float to)

Generates a pseudo-random float between from and to (inclusive).

    public uint Randi()

    public int RandiRange(int from, int to)

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

    public void Randomize()

Setups a time-based seed to generator.

    [Obsolete("SetSeed is deprecated. Use the Seed property instead.")]
    public void SetSeed(ulong seed)
Tags: