Random probability (Customizing random function)

The code you posted does not run the first list should be
int[] num = new int[5500];

After that it is difficult to see how your algorithm is supposed to work, some comments in the code might help. I must say that your algorithm looks over complicated.

You might want to explain in more detail what you mean by