I would look at doing something like this:
var rnd = new Random();
var words = new Stack<string>(GetWordsList().OrderBy(w => rnd.Next()));
Then you just .Pop()
the next value from the stack to get the next random word.
Just be mindful to instantiate the Random
instance only once in your app to avoid producing non-random values related to calling your code in quick succession.