Math.random() 方法:产生0~1间的一个double随机值。(可直接用) 还可以让random作为时间种子: 在java.util.Random类下,有:

Random r=new Random();
r.nextInt(100);   //生成0~99之间的随机整数

还有,System类里有一个currentTimeMills()方法,返回一个从1970年1月1日0点0分0秒到目前的一个随机毫秒数。

[0,1]之间均匀分布的随机整数算法 设定一个基数base=256.0(一般取的2的整数倍),以及两常数a=17.0和b=139.0(这两个数按经验任取)。 r(i)=mod(a*r(i-1)+b,base) pi=r(i)/ base 其中,i=1,2,...... 而pi便是递推得到的第i个随机数(r(i)用数组代,为随机种子)

static double rand01(double[] r){
	double base,a,b,p,temp1,temp2,temp3;
	base=256.0;   //基数
	a=17.0;
	b=139.0;
	temp1=a*(r[0])+b;   //算总值
	temp2=(int)(temp1/base);   //算商
	temp3=temp1-temp2*base;   //算余数
	r[0]=temp3;   //更新随机种子,被下一次使用
	p=r[0]/base;  //随机数
	return p;
}
public static void main(String[] args){
	int i;
	double[] r={5.0};
	for(i=0;i<10;i++){
		System.out.printf("%10.5f\n",rand01(r));
	}
	System.out.printf("\n");
}

以上方法也可用来求[m,n]之间的随机浮点数:

m+(n-m)*rand01(r)

同样,也可求[m,n]之间均匀分布的随机整数:

m+(int)((n-m)*rand01(r))

当然,java中还有java.util.Random类

import java.util.Random;
public class Text{
public static void main(String[] args){
 Random rand=new Random();   //创建random对象
 int result=rand.nextInt(10);   //返回[0,10)不包括10
        }
}