Я, конечно, может, чего не понял, но
Math.random() - 0.3(процентное соотношение) .
Если Math.random() -(минус) 0.3 меньше или равно нулю - то рандом попал в промежуток тридцати процентов.
Итого

Код AS3:
var agility:int = 500;
var dodge:Number = 0.3;
var result:Boolean = Math.random() - dodge <= 0;
Где у вас dodge зависит от agility я так и не понял.
Кхм... Взглянул на получившееся неравенство и...
Подумал об упрощении.

Код AS3:
var agility:int = 500;
var dodge:Number = 0.3;
// Прибавим dodge к обеим частям неравенства, и в итоге получим
var result:Boolean = Math.random() <= dodge;
Теперь должно выглядеть ясней, а то я намудрил ^^
Думаю, если вам понадобится перевести проценты в десятичную дробь, вы сможете сделать это без моей помощи))