Math.random may be "good enough" but, in practice, the Random class is often preferable to Math.random(). Using Math.random , the numbers you get may not actually be completely random. The book "Effective Java Second Edition" covers this in Item #47.