you can do a random % in the way you decribed.
this is a sample of my own quest code:
Code:
$deal=int(rand(100)+1);
if ($deal<76)
{
quest::summonitem(5001);
}
if (($deal>75) && ($deal<88))
{
quest::summonitem(5002);
}
if (($deal>87) && ($deal<95))
{
quest::summonitem(5003);
}
if (($deal>94) && ($deal<98))
{
quest::summonitem(5004);
}
if (($deal>97) && ($deal<100))
{
quest::summonitem(5005);
}
if ($deal==100)
{
quest::summonitem(5006);
}