You need something like this:
[ RandomHeldObject i j k
! count number of items in player
objectloop(i in player) if (i hasnt worn) j++;
! Maybe the player isn't carrying anything?
if (j == 0) return 0;
! pick a random object
k = random(j);
! find it and return it
objectloop(i in player)
if (i hasnt worn) {
j ++;
if (j == k) return i;
}
! shouldn't reach this code
print "** Bug in RandomHeldObject **^";
return 0;
];
-- Gareth Rees