Rewrote level generation, includes randomisation