Description
Seeds the pseudo-random number generator with an integer number, ensuring repeatable number patterns.
Returns
A pseudo-random decimal number, in the range 0-1.
Category
Mathematical functions, Security functions
Function syntax
Randomize(number[, algorithm])
History
- ColdFusion (2023 release) Update 8 and ColdFusion (2021 release) Update 14: Changed the default algorithm from CFMX_COMPAT to SHA1PRNG.
- ColdFusion MX 7: Added the algorithm parameter.
See also
Parameters
Parameter |
Description |
---|---|
number |
Integer number. If the number is not in the range -2,147,483,648 -2,147,483,647, ColdFusion generates an error. |
algorithm |
(Optional) The algorithm to use to generate the seed number. ColdFusion installs a cryptography library with the following algorithms:
|
Usage
Call this function before calling Rand to seed the random number generator. Seeding the generator ensures that the Rand function always generates the same sequence of pseudo-random numbers. This behavior is useful if you must reproduce a pattern consistently.In Standard Edition, for all algorithms except the default algorithm, ColdFusion uses the Java Cryptography Extension (JCE) and installs a Sun Java runtime that includes the Sun JCE default security provider. This provider includes the algorithms listed in the Parameters section. The JCE framework includes facilities for using other provider implementations; however, Adobe cannot provide technical support for third-party security providers.In Enterprise Edition, ColdFusion also installs the RSA BSafe Crypto-J library. This provider adds the following algorithms: FIPS186PRNG, MD5PRNG, DummyPRNG, OBFPRNG. DummyPRNG always returns 0.
Note: To get repeatable number of patterns for a given initial seed, JSAFE must be disabled using the JVM argument on enterprise and developer editions as follows: Dcoldfusion.disablejsafe=true |
Example
The following example calls the Randomize function to seed the random number generator and generates 10 random numbers.
<cfset randomize(12345)> <!--- if one was to remove this line, the random numbers are different every time ---> <cfloop index="i" from="1" to="10"> <cfoutput>#rand()#</cfoutput><br> </cfloop>