New (RandomNumberGenerator constructor)
Create a new RandomNumberGenerator (RandomNumberGenerator class)
The New method creates a random number. The kind of random number depends on the parameters specified when New is invoked:
- If no parameters are specified, New returns an unpredictable random number each time it is called.
- If a Salt parameter is specified, New returns an unpredictable random number that is based on initial input that has an extra degree of randomness.
- If only a Seed parameter is specified, New returns the next number in a specific series of pseudo-random numbers. Subsequent identical calls produce the next items in the series; recreating or resetting the object with the same seed lets you reproduce the series.
%randomNumberGenerator = [%(RandomNumberGenerator):]New[( [Seed= string], - [Salt= string])]
|%randomNumberGenerator||A RandomNumberGenerator object variable.|
|[%(RandomNumberGenerator):]||The optional class name in parentheses denotes a Constructor. See "Usage notes", below, for more information about invoking a RandomNumberGenerator Constructor.|
|Seed||An optional, name required, argument that lets you specify a "seed" for the random number generator. If you provide no seed, the method generates a new, "random," starting value for the random number generator, which produces an unpredictable random number result. Seed is a string.|
|Salt||An optional, name required, argument that lets you specify a "salt" for the random number generator. A salt is additional data to be used (along with the explicit or default seed) to improve the randomness of the random generator's initial value. Salt is a string.|
- As described in "Using New or other Constructors", New can be invoked with no object, with an explicit class name, or with an object variable in the class, even if that object is Null:
%randomNumberGenerator= new %randomNumberGenerator= %(RandomNumberGenerator):new %randomNumberGenerator= %randomNumberGenerator:new
- If no Seed argument is specified, the New method generates a random seed (based on multiple, internal system data like STCK value, frequently-changed parts of memory, and so on).
- If you want to increase the randomness of the initial value passed to the random number generator, but you don't want a reproducible sequence, you can pass additional data to be used to generate the random starting value, maybe from something a user types in. This additional value is called a salt.
- Since the likely use of explicitly specifying a seed is to produce a reproducible random sequence, there is probably not much reason to specify both a salt and a seed, which would nullify reproducibility.
- The RandomNumberGenerator class page has an example of the New method.