Heh, cool question Nighthawk! Always good to think outside the box
I'll explain what happens now: The inventory is an Array-List of objects, so we have to iterate through, examining the properties of each object in order. Is it currently in use/equipped/worn? Is it the amulet? If the answer to either of these is yes, the item cannot be stolen.
Since we have to traverse the entire list either way, it seemed simplest to try to decide whether to steal as we examine the items. That's the main reason I did it the present way, lazy simplicity
This can create a balance problem if you have bugs or things weighted to far one way or the other. Either you steal an item too near the top... or in the original issue, you'd see the Nymph grab the last "steal-able" item from the inventory as a safety that ensured she got *something* from you.
Your suggested method is definitely possible: we could iterate the list, as we go through we create another list with the indexes of each "steal-able" item, then pick a random number from 0 to (oklist.size-1)... then steal that item!
Probably should just do that and eliminate the headaches