2. Random 
Mathクラスには擬似乱数を発生させるrandomメソッドがあったが、それをもう少し高機能にしたものが、このRandomクラスである。 

import java.util.Random 

コンストラクタ
Random() 
新しい乱数ジェネレータを作成する
Random(long seed)
 long型のシードを使って乱数ジェネレータを作成する
メソッド
protected int next(int bits)

次の擬似乱数を生成する

void nextBytes(byte[] bytes)

ランダムバイトを生成し、ユーザ指定のバイト配列に配置する

double nextDouble()

乱数ジェネレータのシーケンスを使って、0.0〜1.0の範囲で一様分布のdouble型の擬似乱数を返す

float nextFloat()

乱数ジェネレータのシーケンスを使って、0.0〜1.0の範囲で一様分布のfloat型の擬似乱数を返す

double nextGaussian()

乱数ジェネレータのシーケンスを使って、平均0.0、標準偏差1.0のガウス(「正規」)分布のdouble型の擬似乱数を返す

int nextInt()

乱数ジェネレータのシーケンスを使って、一様分布のint型の擬似乱数を返す

int nextInt(int n)

乱数ジェネレータのシーケンスを使って、0から指定された値の範囲(0は含むが、その指定された値は含まない) で一様分布の int 型の擬似乱数を返す

long nextLong()

乱数ジェネレータのシーケンスを使って、一様分布のlong型の次の擬似乱数を返す

void setSeed(long seed)

単一のlong型のシードを使って、乱数ジェネレータのシードを設定す

   
sample) MathクラスのrandomメソッドとRandomクラスを用いた場合の例
import java.io.*;
import java.util.*;

class Test {
    public static void main(Stirng args[ ]) {
         for ( int i = 0 ; i < 10 ; i++ )
                 System.out.println( i + ":" + Math.random( ));

         System.out.println( );

         Random rnd new Random( );
       for( int i = 0 ; i < 10 ; i++ )
            System.out.println( i +":" + rnd.nextDouble( ) );
       }
}

C:\Java\>java Test
0:0.9490168285406363
1:0.1315265909356933
2:0.8805518855113684
3:0.022296367930474403
4:0.9159107068525388
5:0.45377169510241844
6:0.1521866646374057
7:0.2681536733194758
8:0.5647590024766241
9:0.5428563464748609

0:0.9448960819203688
1:0.93056882849094
2:0.11423327297311248
3:0.007178140412706258
4:0.945599389167783
5:0.40711585241316184
6:0.7639053958760349
7:0.19925106572398155
8:0.6933292289366854
9:0.35117261168665725

C:\Java\>