基本用法
Random r = new Random();
int i = r.nextInt(); // 任意整數
int n = r.nextInt(100); // 0~99
double d = r.nextDouble(); // 0.0~1.0
boolean b = r.nextBoolean();
指定範圍整數 [min, max]
int randomInRange(int min, int max) {
return new Random().nextInt(max - min + 1) + min;
}
進階:ThreadLocalRandom (Java 7+)
int n = ThreadLocalRandom.current().nextInt(min, max + 1); // 含 max
安全隨機數
SecureRandom sr = new SecureRandom();
byte[] bytes = new byte[16];
sr.nextBytes(bytes); // 適合加密用途
常見誤區
- 頻繁 `new Random()` 會因種子相近產生重複序列,建議重用實例或用
ThreadLocalRandom。
Math.random() 內部同步,多執行緒下效能較差。