Random
import java.util.Random;
//随机生成[0, 100)中的一个整数,左闭右开区间
Random random = new Random(10);
int res = random.nextInt(100);
//随机生成[a, b)之间的一个整数
res = random.nextInt(b - a) + a;
//随机生成[a, b]之间的一个整数
res = random.nextInt(b - a + 1) + a;
Math.Random()
import java.lang.Math;
//随机生成[0, 100)中的一个整数,左闭右开区间
int res = (int)(Math.random() * 100);
//随机生成[a, b)之间的一个整数
res = (int)(Math.random() * (b - a)) + a;
//随机生成[a, b]之间的一个整数
res = (int)(Math.random() * (b - a)) + a;
总结
1、Math.random() 方法生成[0, 1)范围内的double类型随机数;Random类中的nextXxxx系列方法生成0-n的随机数,且可通过种子数限定结果是否可复现
2、Math.random() 线程安全,多线程环境能被调用
3、如无特殊需求,则使用(int)(Math.random()*n)的方式生成随机数即可