Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

RandomNumberGenerator

Inherits: RefCounted < Object

Provides methods for generating pseudo-random numbers.

Description

RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses PCG32.

Note: The underlying algorithm is an implementation detail and should not be depended upon.

To generate a random float number (within a given range) based on a time-dependant seed:

var rng = RandomNumberGenerator.new()
func _ready():
    var my_random_number = rng.randf_range(-10.0, 10.0)

Tutorials

Properties

int

seed

0

int

state

0

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 ( )


Property Descriptions

int seed = 0

  • void set_seed ( int value )

  • int get_seed ( )

Initializes the random number generator state based on the given seed value. 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.

Note: Setting this property produces a side effect of changing the internal state, so make sure to initialize the seed before modifying the state:

Note: The default value of this property is pseudo-random, and changes when calling randomize. The 0 value documented here is a placeholder, and not the actual default seed.

var rng = RandomNumberGenerator.new()
rng.seed = hash(