isn't that basically what I said?

using things like totalWords keeps you from having to rework code when the length of the array changes.

The randRange function I just find usefull in general that way if I want to get a number between say 10-100 I can.

Now if you want each element only used once, like when dealing cards from an array of 52 cards what I'd do is to make a second array and using the random number to fill it with random elements from the first array always checking that it hasn't been used before then you can just pull from the array from the top and remove the array element just like dealing a shuffled deck of cards.