자바 랜덤값 추출에관한질문좀합니다
자바에서 제공하는 랜덤 값을 추출 할수 있는 라이브러리를 제외하고 순수 코드로 랜덤한(규칙성 없이) 정수형값을 뽑을수 있나요?
- 왜 랜덤수를 뽑아 만들려고 하시는지요? 이것은 매우 안좋은 방법과 생각입니다. - 랜덤수를 만들떄 TRNG(True Random Number Generator)를 사용해야 안전한 랜덤수를 만들 수 있습니다. 랜덤수가 예측이 가능하다면 해커에 의해 또는 타의에 의해 랜덤수를 알아챌 수 있습니다. - 그래서 자바에서는 보안 ㄹ내점 수를 생성하는데 JCA를 통해서 제공하고 있습니다. - 관련된 글을 네이버 D2에 잘 정리된 글이 있어 링크를 합니다. - 링크 : https://d2.naver.com/helloworld/197937 - 다른 방법으로 안전한 랜덤수를 만드는 방법은 인텔에서 제공하는 DRNG(Digital Random Number Generator)를 사용하는 것입니다. 보통 i5 급 cpu는 다 해당 기능을 제공하고 있으며 자바에서 호출하는 api를 만들어서 사용하면 됩니다. - 인텔 DRNG 링크는 다음과 같습니다. https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide - 자바 TRNG 샘플 코드는 Github에 있으니 참고해서 배워보세요. - 링크 https://github.com/sanbrother/java-TRNG-client/blob/master/TestTRNG.java 
- 윗분이 말씀하신데로 , 기본적으로 제공하는 명령어코드가 최적의 코드라고 보시면 됩니다 - 그 이유는 버전업이 되면서 문제가 되는 부분들은 체크되어 삭제되고 업데이트 되기때문에 - 정말로 진짜로 새로이 만들어야 하는 내용이 아니라면 그냥 있는 명령어 사용하시면 됩니다 - 또는 랜덤이지만 편향성 있는 랜덤값을 출력을 해야 한다면, - 랜덤명령을 여러번 조합하므로써 가능은 합니다. - 예를 들어 1~10까지의 랜덤을 발생시키는데 - 7~10까지의 랜덤을 가중치를 두어 발생시키고 싶다면? - 아래 알고리즘으로 만드시면 됩니다 - 1에서 10까지의 난수를 2번 발생시켜서 a,b 에 저장을 합니다 
- a 와 b 중에서 7-10 사이의 숫자가 있다면 그 변수를 사용합니다 
- 없다면? 그냥 a변수에 있는 값을 사용을 합니다 
 - 대충 이정도면 7-10에 1번 더 가중치를 준것이므로 확율적으로 7-10이 나올 가능성이 많이있습니다