пришло в голову такое:
if((rand(0,100) + ($procent /2) ) >= 50) $target = 1;
else $target = 0;
это только для искомых чисел
0 и
1, т.е. для
двух
Эти два числа - 100%
каждое из них - половина (50%)
Условно взял, что если рандом выдаст число от 0 до 49 - то
$target = 0 (грубо говоря принцип округления)
Если 50 и выше - то
$target = 1.
И процент "влияния". Если он равен 100, то
$target всегда будет равно 1.
Если
$procent положительный - то влияние идёт в сторону 1
Если отрицательный - в сторону 0
на мой взгляд - просто и изящно