Vamos a poner por ejemplo el 50.
Código PHP:
$probabilidad = 50 ;
$nVeces = ceil(100 / $probabilidad) ;
$numAcierto = $probabilidad - 1;
$resultado = $rand(0,$numAcierto) ;
if ($resultado == $numAcierto)
{
// Se hace la query
}
else
{
// No se hace la query
}
Es bastante facil de entender.
Si escojes 50, el rand va entre 0 y 1, y si sale el 1, se hace la query, si no, no se hace ( 50% de que se realice )
Si fuera un 10% de probabilidades, el rand va entre 0 y 9, y si sale el 9, se realiza la query, si sale otro numero, no se realiza.
Un saludo
PD: A mi es que me gusta empezar el rand en el 0, pero podrias ahorrarte 2 lineas de codigo empezando por el 1:
Código PHP:
$probabilidad = 50 ;
$numAcierto = ceil(100 / $probabilidad) ;
$resultado = $rand(1,$numAcierto) ;
if ($resultado == $numAcierto)
{
// Se hace la query
}
else
{
// No se hace la query
}