You might find that adding more areas to the quest list actually helps. With 2 areas out of 100 available for questing, and other criteria placed on the rooms, random room hopping is going to fail to find a valid quest over 98% of the time.
You might look at cycling through the rooms in some way other than get_random_room, as it does a lot of looping itself. So you've got a loop calling a loop, and that can get pretty messy in terms of complexity. Maybe try just looking through the quest areas instead of the whole world.. Like, choose one of the quest areas randomly, pick a random number between its uvnum and lvnum, see if it's a valid room. If not, go back and choose a new area to look in... --Palrich

