Random Event Refactoring

Random Events are now objects instead of primitive arrays of data. This
improves the readability of the related code.