Updated to use only positive random numbers, and to give up after 50,000 roomgen attempts.