Marker random(int readLen) {
		// Random number
		long chrPos = Math.abs(rand.nextLong()) % genomeSize;

		//---
		// Select a chromosome
		//---
		long pos = chrPos;
		Chromosome chromo = null;
		for (Chromosome chr : genome) {
			if (pos <= chr.size()) {
				chromo = chr;
				break;
			}
			pos -= chr.size();
		}
		if (chromo == null) throw new RuntimeException("Selected null chromosome. This should never happen!");
		if (pos < 0) throw new RuntimeException("Negative position. This should never happen!");
		if ((pos + readLen) > chromo.size()) return null; // Read pass chromosome length (can happen)

		return new Marker(chromo, (int) pos, (int) (pos + readLen - 1), 1, "");
	}