A critical component of becoming a programmer is learning how to separate out various parts of your program into discrete parts. This is what Winston is talking about. for example, in your program, some of the distinct parts I see are:
1) Get input from a user.
2) generate a random number between 1 and some upper limit
3) do something 10,000 times
4) find the maximum number out of a bunch of numbers
5) find the minimum number out of a bunch of numbers
6) find the mean of a bunch of numbers.
so...look at #2: generate a random number between 1 and some upper limit. Note that there is NOTHING HERE that depends on HOW YOU GET THAT NUMBER. You could get it from the console. You could get it from a database, or a file, or you could generate it randomly, or you could base it off the time of day...etc. It doesn't matter how you got it, but assuming you have it, you need a method that will do it.
So, for starters...forget about doing ANYTHING else. Just focus on writing a method that will generate a random number between 1 and <your value>. for starters, you can just hard-code some limit - like 45. Write a bunch of code that you will eventually throw away to TEST
that method. Make that method ROCK SOLID. Then try passing in different limits, making sure it handles things like negative numbers or whatever weird cases you think are necessary.
Once you are done writing that method, pick something else on that list, and go through the same process. Maybe you'll pick item #3 - do something multiple times. Note that it doesn't matter WHAT that is. You could print to the screen. You could ring a bell. You could generate a random number (hmm.....). And to begin, you may only want to do it 10 times. If you can do it 10 times, it should be easy enough to do it 30 times, or 500 times, or even 10,000 times (hmm....).
Then keep building off that. I never write more than 2-3 lines of code before I compile and test. the more often you do that, the easier it is to find problems.