точно такой же код хотел написать днём, но подумал, что не совсем понял вопрос. Если нужно точно 30,20 и 10 процентов, то можно так:

Код AS3:
function rand():int
{
var rnd:Number = Math.random();
if (rnd < 0.3) return 111; // 30% выпадения
if (rnd < 0.5) return 222; // 20% + 30% из предыдущего
if (rnd < 0.6) return 555; // 10%
var i:int;
do
{ i=int(rnd * 1000) }
while((i==111)||(i==222)||(i==555));
return i;
}