Here's one way to do it.
public static String getOutcome(Map possibilities) {
int x = (int) (Math.random() * 100);
for (Map.Entry possibility : possibilities.entrySet()) {
if (x <= possibility.getValue()) {
return possibility.getKey();
}
x -= possibility.getValue();
}
// unreachable if probabilities are correctly mapped
return null;
}