Hola. Te voy a dar una mano mas que nada con el pseudo código. Posiblemente tenga algunos errores de sintaxis o de procedimiento lo que escribo, pero fijate que es correcto desde la lógica, y eso es en lo que quería aportar mas que nada.
La manera en que solucionaría eso que proponés ultimo sería con varios if.
Primero usas cosas de lógica o de probabilidad:
Vamos al caso mas facil:
Cita: Es decir, la variable con el valor de 255, tendria un 99%
La variable con el valor de 1, tendria un 1%.
Pones una variable auxiliar que pueda tomar valores entre 0 y 99.
y le asignas un valor random entre 0 y 99.
primero declaras:
$variable1 = 1;
$variable2 = 255;
después preguntas:
Cita:
Iniciado por php if ( $varaux == 0)
$variableasignada = $variable1 ;
else
$variableasignada = $variable2;
Entonces hay un 1% de posibilidades de que la variable que vale 1 salga y un 99% de que salga la de 255.
Ahora vamos al otro caso:
Cita: Una variable con un valor de 128 tendria un 51%,
Y otra con un valor de 64 tendria un 25%
Ahora es un poco distinto. Además agrego una variable3 que tenga un 24% de posibilidades así los números cierran en 100.
$variable1 = 128 ;
$variable2 = 64 ;
$variable3 = lo que quieras ;
Cita:
Iniciado por php if ( $varaux <= 50 ) // varaux está entre 0 y 50 inclusive (51%)
$variableasignada = $variable1 ;
else if ( ($varaux >= 50) && ($varaux <= 75) ) // varaux está entre 51 y 75 inclusive (25%)
$variableasignada = $variable2;
else $variableasignada = $variable3 ; /* o acá hacés lo que necesites hacer, no necesariamente asignar una variable3 */
PD: esto es lo que entendí yo por "aleatoreidad controlada". Es decir, vos podés controlar con cuánta probabilidad querés que salga una variable, y eso lo controlás con los if.
Los 2 ejemplos en la manera en que los hice están sujetos a porcentajes enteros, no decimales. En ese caso aproximá.
Ahora, si lo que querés es que vaya variando la probabilidad de que ocurran, ahí podrías introducir otras variables aleatorias, y meterlas adentro de esos if.