@Override
	public String random()
	{
		int total=roomCountAllAreas();
		if(total<=0) return null;
		final int which=CMLib.dice().roll(1,total,-1);
		total=0;
		String roomID=null;
		CMIntegerGrouper CMI = null;
		for(final Entry<String,CMIntegerGrouper> set : root.entrySet())
		{
			CMI=set.getValue();
			if(CMI==null)
				total++;
			else
				total+=CMI.roomCount();
			if(which<total)
			{
				roomID=set.getKey();
				break;
			}
		}
		if(roomID==null) return null;
		if(CMI==null)
		{
			//Log.errOut("RNUMS","Unable to even select an integer group! Picked "+which+"/"+grandTotal);
			return roomID;
		}
		final long selection=CMI.random();
		return convertRoomID(roomID,selection);
	}