1. A computer-implemented method of generating a random map at a computing system having a processor and memory, comprising the steps of the computing system performing the following: the computing system defining a plurality of elements to be distributed across a plurality of tiles on a map to be generated; the computing system assigning a plurality of weight values to said plurality of elements; the computing system using a random value function to generate a value for each of said plurality of tiles; the computing system comparing said generated value with one or more of said assigned weight values to select one of said elements for one of said tiles; and the computing system adding said selected element, comprising a first object, to said one of said tiles in the map by at least performing the following: defining one or more placement constraints for a first object to be placed on a the map, said constraints identifying an object type, and indicating a distance value to be used in placing said first object if another object of said identified object type is already placed on said map; proposing a location on said map for said first object; determining whether said proposed location satisfies said one or more constraints; and if said proposed location does not satisfy said constraints, then finding a second location on said map for said first object, wherein said second location is found based on said proposed location.