private void unchokeRandom(Peer dontUnchoke){
		ArrayList<Peer> chokedPeers = new ArrayList<Peer>();
		for(int i=0; i < manager.peers.size(); i++){
			if(manager.peers.get(i).amChoking() && manager.peers.get(i).isInterested() && !manager.peers.get(i).equals(dontUnchoke)){
				chokedPeers.add(manager.peers.get(i));
			}
		}
		
		//Credit this random number code to StackOverflow.com
		int min = 0;
		int max = chokedPeers.size()-1;
		int randomIndex = min + (int)(Math.random() * ((max - min) + 1));

		//TODO: only thing i'm concerned about is that this message won't get sent until end of processMessage cycle
		//If we're choking this peer, it means we're waiting to read from socket; socket waits can be up to
		//120 seconds while we need to do this unchoke/choke business every 30 seconds.. could be an issue
		if(manager.numUnchoked < 6){
			System.out.println("Unchoking " + chokedPeers.get(randomIndex)+ " at random.");
			chokedPeers.get(randomIndex).messageQueue.add(new Message(Message.UNCHOKE));
			chokedPeers.get(randomIndex).setChoking(false);
			manager.numUnchoked++;
		}

	}