Das mit der Gewichtung könnte man so lösen (z.B. mit PHP):
<?php
$x = mt_rand(1, 10);
if($x < 6) $z = mt_rand(1, 35);
elseif ($x < 9) $z = mt_rand(36, 75);
else $z = mt_rand(76, 100);
echo $z;
?>
Vielleicht (wahrscheinlich) geht's besser, aber es ist eine...