Roblox UtilitiesDevlHub Roblox Documentation

Data type

Random

Generates pseudorandom numbers and directions.

The Random data type generates pseudorandom numbers and directions.

Constructors 1#

newReturns a new pseudorandom generator using an optional seed.

new(seed: number)#

Returns a new Random object. If you don't provide the seed parameter, Random uses a seed from an internal entropy source.

If you provide a seed, it should be within the range [-9007199254740991, 9007199254740991], and Random will round it down to the nearest integer. So seeds of 0, 0.99, and math.random() all produce identical generators. If you need to generate a seed and store it for later retrieval, use math.random(max).

NameTypeDefaultDescription
seednumberAn optional number that initializes the pseudorandom number generator's internal state, truncated toward zero to a whole number. Should be within the range [-9007199254740991, 9007199254740991]; values outside this range are clamped to 0.

Methods 6#

NextIntegerReturns a pseudorandom integer uniformly distributed over [min, max].
NextNumberReturns a pseudorandom number uniformly distributed over [0, 1].
NextNumberReturns a pseudorandom number uniformly distributed over [min, max].
ShuffleUniformly shuffles a table in-place.
NextUnitVectorReturns a unit vector with a pseudorandom direction.
CloneReturns a new Random object with the same state as the original.

NextInteger(min: number, max: number): number#

Returns a pseudorandom integer uniformly distributed over [min, max], inclusive of both endpoints. If min is greater than max, the two values are swapped so the call still succeeds. Both arguments are truncated toward zero to whole numbers before sampling.

NameTypeDefaultDescription
minnumberThe minimum integer value of the range (inclusive). Truncated toward zero to a whole number.
maxnumberThe maximum integer value of the range (inclusive). Truncated toward zero to a whole number.
Returns
  • number

NextNumber(): number#

Returns a uniform pseudorandom real number in the range of 0 to 1, inclusive.

Returns
  • number — A pseudorandom number uniformly distributed over [0, 1].

NextNumber(min: number, max: number): number#

Returns a uniform pseudorandom real number in the range of min to max, inclusive.

NameTypeDefaultDescription
minnumberThe minimum value of the range (inclusive).
maxnumberThe maximum value of the range (inclusive).
Returns
  • number — A pseudorandom number uniformly distributed over [min, max].

Shuffle(tb: table): ()#

Uniformly shuffles the array part of tb in-place using NextInteger to pick indices. If there are any nil "holes" in the array part of the table, Shuffle throws an error, since shuffling could change the length.

The hash part of tb is ignored. No metamethods of tb are invoked.

The shuffle is defined to be a Fisher-Yates shuffle so the number of NextInteger calls is guaranteed to be consistent between engine versions for a given size of table.

NameTypeDefaultDescription
tbtableThe table whose array part is shuffled in-place.
Returns
  • ()

NextUnitVector(): Vector3#

Returns a unit vector with a pseudorandom direction. Vectors returned from this function are uniformly distributed over the unit sphere.

Returns
  • Vector3 — A unit vector with a pseudorandom direction.

Clone(): Random#

Returns a new Random object whose internal state is copied from the original. After cloning, both the original and the clone produce the same sequence of pseudorandom values going forward, but they advance independently — consuming a value from one does not affect the other.

Returns
  • Random — A new Random object with the same internal state as the original.