>I don't understand how shuffling the entire vector twice would
>be conceptually simpler than just picking a random number from 1 to 8.
Conceptually, it's probably easier to see how shuffling a vector results in a suitably random value while shifting the range of a random number with the remainder operator isn't immediately obvious unless you're a math major. On the other hand, the former is less likely to be used if all you need is a quick and dirty roll of the dice.
>I doubt the low vs high order bits issue will have much of an
>impact if you're looking for the easiest method.
Or at all, since these days compiler vendors have figured out that their implementations of rand sucked ass. The low order bits problem isn't as bad as it used to be, but you still have to contend with the distribution problem of shrinking a range that was fragile to begin with.
>For more information, see Prelude's faq:
Prelude's other FAQ.