### 15.3. Generating Random Numbers

You have already used the `Random` class a little, but let's investigate this in more detail. The `Random` class enables you to create multiple random number generators that are independent of one another. Each object of the class is a separate random number generator. Any `Random` object can generate pseudo-random numbers of types `int, long, float`, or `double`. These numbers are created using an algorithm that takes a seed and grows a sequence of numbers from it. Initializing the algorithm twice with the same seed would produce the same sequence because the algorithm is deterministic.

The integer values generated will be uniformly distributed over the complete range for the type, and the floating-point values will be uniformly distributed over the range 0.0 to 1.0 for both types. You can also generate numbers of type `double` with a Gaussian (or normal) distribution that has a mean of 0.0 and a standard deviation of 1.0. This is the typical bell-shaped curve that represents the probability distribution for many random events. Figure 15-3 illustrates the various flavors of random number generator that you can define.

##### Figure 15.3. Figure 15-3

There are two constructors for a `Random` object. The default constructor will create an object that uses the current time from your computer clock as the seed value for generating pseudo-random numbers. The other constructor ...

Get *Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition* now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.