code: static double randomTriangular (double low, double high, double mode) {
  		double u = MathUtils.random.nextDouble();
  		double d = high - low;
  		if (u <= (mode - low) / d) return low + Math.sqrt(u * d * (mode - low));
  		return high - Math.sqrt((1 - u) * d * (high - mode));
  	}
docs: Returns a triangularly distributed random number between {@code low} (inclusive) and {@code high} (exclusive), where values
  around {@code mode} are more likely.
  @param low the lower limit
  @param high the upper limit
  @param mode the point around which the values are more likely