Array[0].accumulatedProbability = Array[0].probability;
for (int i = 1; i < 100; ++i)
Array[i].accumulatedProbability = Array[i-1].accumulatedProbability + Array[i].probability;
Array[99].accumulatedProbability should then be 1.0.
* next generate a random number between 0 and 1. (or 0..Array[99].accumulatedProbability)
* find the smallest index (by using binary search) whose accumulatedProbability is larger than the random number.