Random generation. #2

Uses the Fisher-Yates shuffle algorithm.

Signed-off-by: Damian Lanningham <qrebound@gmail.com>