Math.random() 은

seed 값이 없으므로 다음 수를 예상 할 수 있다.

참고로 컴퓨터는 논리적인 의미의 난수를 생성 할 수 없다.

컴퓨터에겐 Random 이란 개념이 없기 때문이다.

그래서 일정 알고리즘을 사용해 난수(와 비슷한 수 ) 를 생성하는데 

이때 주로 사용하는것이 시간이다. 시간은 수시로 변하기 때문이다.

그래서 이 알고리즘만 분석하게 되면 난수값을 예측 할 수 있는것이다

대응 방법 으로는 

new SecureRandom().nextDouble()

을 사용하면 된다.