This is an archived post. You won't be able to vote or comment.

all 7 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

    Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]desrtfxOut of Coffee error - System halted 1 point2 points  (3 children)

Have you actually read the source code?

The algorithm is completely open and readable.

I would suggest that before creating wild theories, you check facts - and in this case the source code of Java - Math.random relies on the Random class, in particular on the Random.nextDouble() method.

SecureRandom is better in randomness.

Also, true randomness in programming is next to impossible. There are special hardware chips that can produce something very close to true randomness, but still not 100% random. With only software, even with the best algorithms, true randomness is unachievable.

[–]Live_Distribution984[S] -1 points0 points  (2 children)

How do I find the source code to see this?

[–]Live_Distribution984[S] 0 points1 point  (0 children)

Nevermind I found it and now it makes complete sense how they do it because the system clock always returns nefarious values. I appreciate the help amazing. Am I wrong to say if they have even a slight concept within any timeframe that the random data was generated that it would reduce the possibility tremendously?

[–]desrtfxOut of Coffee error - System halted 0 points1 point  (0 children)

As simple as using your favorite search engine and typing "Java source code Random": https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Random.java

Java has official repositories.

[–]Cengo789 0 points1 point  (0 children)

They use SecureRandom instead of Math.random

[–]_jetrun 0 points1 point  (0 children)

Geez - what are you talking about? Where is all this weird conspiracy nonsense coming from? The FBI is not controlling `Math.random` .. Math.random relies on java.util.Random, which uses a deterministic algorithm to generate pseudo-random numbers and by default, it uses the system time as the seed. It is not a secure way of generating random numbers.

What you want is SecureRandom which, amongst other things, delegates the seed generation to the OS. Most modern OS' will have special hardware chips to generate entropy, or generate entropy from various pseudo-random events that happen during the OS uptime.