@Override
	public void mutate() {
		// Move a game from one week to another week randomly
		Random random = new Random();
		double r = random.nextDouble(); 
		if(r < 0.75) {
			// Get two random weeks
			Week w1 = weeks.get(random.nextInt(weeks.size()));
			Week w2 = weeks.get(random.nextInt(weeks.size()));
			
			// Get random event from week 1
			Day day = w1.getDay(0);
			if(day.getEvents().size() != 0) {
				NFLEvent e = day.getEvents().get(random.nextInt(day.getEvents().size()));
				day.removeEvent(e);
				w2.getDay(0).addEvent(e);
			}
		} else {
			Week smallest = null;
			Week largest  = null;
			
			for(Week w : weeks) {
				if(smallest == null || w.getDay(0).eventSize() < smallest.getDay(0).eventSize()) {
					smallest = w;
				}
				
				if(largest == null || w.getDay(0).eventSize() > largest.getDay(0).eventSize()) {
					largest = w;
				}
			}
			
			if(!(smallest.getDay(0).eventSize() == largest.getDay(0).eventSize())) {
				Day day = largest.getDay(0);
				NFLEvent e = null;
				while((e = day.getEvents().get(random.nextInt(day.getEvents().size()))).getAway().equals("BYE")) {}
				day.removeEvent(e);
				smallest.getDay(0).addEvent(e);
			}
		}
	}