Loading...
Searching...
No Matches
juce::Random Class Referencefinal

`#include <juce_Random.h>`

## Public Member Functions

| Random (int64 seedValue) noexcept
| Random ()
int | nextInt () noexcept
int | nextInt (int maxValue) noexcept
int | nextInt (Range< int > range) noexcept
int64 | nextInt64 () noexcept
float | nextFloat () noexcept
double | nextDouble () noexcept
bool | nextBool () noexcept
BigInteger | nextLargeNumber (const BigInteger &maximumValue)
void | fillBitsRandomly (void *bufferToFill, size_t sizeInBytes)
void | fillBitsRandomly (BigInteger &arrayToChange, int startBit, int numBits)
void | setSeed (int64 newSeed) noexcept
int64 | getSeed () const noexcept
void | combineSeed (int64 seedValue) noexcept
void | setSeedRandomly ()

## Static Public Member Functions

static Random & | getSystemRandom () noexcept

## Detailed Description

A random number generator.

You can create a Random object and use it to generate a sequence of random numbers.

Definition at line 34 of file juce_Random.h.

## Constructor & Destructor Documentation

## Random() [1/2]

juce::Random::Random | ( | int64 | seedValue | ) |

explicit noexcept

Creates a Random object based on a seed value.

For a given seed value, the subsequent numbers generated by this object will be predictable, so a good idea is to set this value based on the time, e.g.

new Random (Time::currentTimeMillis())

Definition at line 26 of file juce_Random.cpp.

Referenced by getSystemRandom().

## Random() [2/2]

juce::Random::Random | ( |  | ) |

Creates a Random object using a random seed value. Internally, this calls setSeedRandomly() to randomise the seed.

Definition at line 30 of file juce_Random.cpp.

## Member Function Documentation

## combineSeed()

void juce::Random::combineSeed | ( | int64 | seedValue | ) |

noexcept

Merges this object's seed with another value. This sets the seed to be a value created by combining the current seed and this new value.

Definition at line 50 of file juce_Random.cpp.

Referenced by setSeedRandomly().

## fillBitsRandomly() [1/2]

void juce::Random::fillBitsRandomly | ( | BigInteger & | arrayToChange,
|  | int | startBit,
|  | int | numBits )

Sets a range of bits in a BigInteger to random values.

Definition at line 141 of file juce_Random.cpp.

## fillBitsRandomly() [2/2]

void juce::Random::fillBitsRandomly | ( | void * | bufferToFill,
|  | size_t | sizeInBytes )

Fills a block of memory with random values.

Definition at line 127 of file juce_Random.cpp.

Referenced by nextLargeNumber().

## getSeed()

int64 juce::Random::getSeed | ( |  | ) | const

inline noexcept

Returns the RNG's current seed.

Definition at line 103 of file juce_Random.h.

## getSystemRandom()

Random & juce::Random::getSystemRandom | ( |  | ) |

static noexcept

The overhead of creating a new Random object is fairly small, but if you want to avoid it, you can call this method to get a global shared Random object.

It's not thread-safe though, so threads should use their own Random object, otherwise you run the risk of your random numbers becoming.. erm.. randomly corrupted..

Definition at line 67 of file juce_Random.cpp.

Referenced by juce::File::createTempFile(), and setSeed().

## nextBool()

bool juce::Random::nextBool | ( |  | ) |

noexcept

Returns the next random boolean value.

Definition at line 97 of file juce_Random.cpp.

Referenced by fillBitsRandomly().

## nextDouble()

double juce::Random::nextDouble | ( |  | ) |

noexcept

Returns the next random floating-point number.

Returns
  a random value in the range 0 (inclusive) to 1.0 (exclusive)

Definition at line 109 of file juce_Random.cpp.

## nextFloat()

float juce::Random::nextFloat | ( |  | ) |

noexcept

Returns the next random floating-point number.

Returns
  a random value in the range 0 (inclusive) to 1.0 (exclusive)

Definition at line 102 of file juce_Random.cpp.

## nextInt() [1/3]

int juce::Random::nextInt | ( |  | ) |

noexcept

Returns the next random 32 bit integer.

Returns
  a random integer from the full range 0x80000000 to 0x7fffffff

Definition at line 74 of file juce_Random.cpp.

Referenced by fillBitsRandomly(), fillBitsRandomly(), nextBool(), nextDouble(), nextFloat(), nextInt(), nextInt(), nextInt64(), juce::UnitTestRunner::runTests(), and juce::Uuid::Uuid().

## nextInt() [2/3]

int juce::Random::nextInt | ( | int | maxValue | ) |

noexcept

Returns the next random number, limited to a given range. The maxValue parameter may not be negative, or zero.

Returns
  a random integer between 0 (inclusive) and maxValue (exclusive).

Definition at line 81 of file juce_Random.cpp.

## nextInt() [3/3]

int juce::Random::nextInt | ( | Range< int > | range | ) |

noexcept

Returns the next random number, limited to a given range.

Returns
  a random integer between the range start (inclusive) and its end (exclusive).

Definition at line 87 of file juce_Random.cpp.

## nextInt64()

int64 juce::Random::nextInt64 | ( |  | ) |

noexcept

Returns the next 64-bit random number.

Returns
  a random integer from the full range 0x8000000000000000 to 0x7fffffffffffffff

Definition at line 92 of file juce_Random.cpp.

Referenced by combineSeed().

## nextLargeNumber()

BigInteger juce::Random::nextLargeNumber | ( | const BigInteger & | maximumValue | ) |

Returns a BigInteger containing a random number.

Returns
  a random value in the range 0 to (maximumValue - 1).

Definition at line 114 of file juce_Random.cpp.

## setSeed()

void juce::Random::setSeed | ( | int64 | newSeed | ) |

noexcept

Resets this Random object to a given seed value.

Definition at line 35 of file juce_Random.cpp.

## setSeedRandomly()

void juce::Random::setSeedRandomly | ( |  | ) |

Reseeds this generator using a value generated from various semi-random system properties like the current time, etc.

Because this function convolves the time with the last seed value, calling it repeatedly will increase the randomness of the final result.

Definition at line 55 of file juce_Random.cpp.

Referenced by Random().

The documentation for this class was generated from the following files:

- juce_Random.h
- juce_Random.cpp