code: public E getNextValue() throws ValueGenerationException{
  		if(!isValid())
  			throw new ValueGenerationException("Cannot provide elements in invalid state.");
  		Double random = rand.nextDouble();
  		for(int i=0; i<limits.size(); i++)
  			if(random <= limits.get(i)){
  				return keys.get(i);
  			}
  		return null;
  	}
docs: Conducts a stochastic element choice based on the maintained occurrence probabilities.
  @return A randomly chosen element based on occurrence probabilities.
  @throws ValueGenerationException Thrown, if the chooser is in an invalid state.