Smart Game Design: Using Randomness in Games