RandomNumberGenerator

Inherits: Reference < Object

A class 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. 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)

Properties

intseed-6398989897141750821

Methods

floatrandf ( )
floatrandf_range ( float from, float to )
floatrandfn ( float mean=0.0, float deviation=1.0 )
intrandi ( )
intrandi_range ( int from, int to )
voidrandomize ( )

Property Descriptions

Default-6398989897141750821
Setterset_seed(value)
Getterget_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

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


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


Generates a normally-distributed pseudo-random number, using Box-Muller transform with the specified mean and a standard deviation. This is also called Gaussian distribution.


Generates a pseudo-random 32-bit unsigned integer between 0 and 4294967295 (inclusive).


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


  • void randomize ( )

Setups a time-based seed to generator.

Doc ID missing

Disclaimer: This page has been automaticaly and directly extracted from the official Godot Docs website, the 1970-01-01 at 00:00:00. It’s the English Stable version because it’s what most Godot users should use. The Copyright owners are Juan Linietsky, Ariel Manzur and the Godot community. CC-BY 3.0. Thanks for your patience and generosity.