Optimize word picking

Previous algorithm made two db calls for each word chosen and used
a hacky method of getting a random word from the database. It also
often resulted in randomly getting the same word twice in a row. New
method does a single DB call to make a Python list, shuffles the list,
then goes through the list in order. There is a break condition if user
changes what levels to pull from.