>What purpose exactly does scaling / shifting rand values serve?
rand gives you a number from 0 to some big value. Sometimes you don't want that. Sometimes you want a number from 0 to 10. But if you might get a number from 0 to 32767, you need to force that value into your desired range. That's what the scaling and shifting techniques do.