Seleccione el elemento de la matriz con probabilidad proporcional a su valor

Tengo una serie de dobles y quiero seleccionar un valor de ella con la probabilidad de que cada valor seleccionado sea inversamente proporcional a su valor. Por ejemplo:

arr[0] = 100
arr[1] = 200

En este ejemplo, el elemento 0 tendría un 66% de ser seleccionado y el elemento 1 con un 33% de probabilidad. Estoy teniendo dificultades para codificar esto. Lo que he hecho hasta ahora es calcular el valor total de la matriz (el ejemplo sería 300), luego he jugado un poco invirtiendo los números antes de calcularlos como un porcentaje del total. No consigo que nada funcione. Al final deseo:

new randomNumber
for(int y=0; y < probabilities.length; y++){
     if(randomNumber < probabilities[y]){
          Select probabilities[y]
     }
}

O algo a ese afecto. ¿Alguna ayuda? La codificación está en Java pero puedo adaptar cualquier pseudocódigo.

Respuestas a la pregunta(4)

Su respuesta a la pregunta