import java.util.*;

public class RandomGenAnalyzer {
  private Random generator = new Random();
  private int[]  data;
  private int    valueMin;
  private int    valueMax;
  private boolean limited;
  static final int DEFAULT_SIZE = 1000;

  public RandomGenAnalyzer(int numberElements, int valueMax) {
    data = new int[numberElements];
    valueMin = 0;
    this.valueMax = valueMax;
    limited = true;
  }

  public RandomGenAnalyzer(int numberElements) {
    data = new int[numberElements];
    valueMin = Integer.MIN_VALUE;
    valueMax = Integer.MAX_VALUE;
    limited = false;
  }

  public RandomGenAnalyzer() {
    this(DEFAULT_SIZE);
  }

  public void fill() {
    for (int  i = 0; i < data.length ; ++i) {
      data[i] = generator.nextInt();
      if ( limited )
	{
	  data[i] = Math.abs(data[i])%valueMax;
	} // end of if ()
    } // end of for
  }
    
  private int qttElem(int low, int high) {
    int count = 0;
    for (int  i = 0; i < data.length ; ++i) {
      if ( data[i] >= low & data[i] < high )
	{
	  ++count;
	} // end of if ()
    }
    return count;
  }

  public int qtt1Qtr() {
    int low = valueMin;
    // high: valueMin + (valueMax-valueMin)/4;
    int high = (int)(.25*valueMax + .75*valueMin); 
    return qttElem(low, high);
  }

  public int qtt2Qtr() {
    int low =  (int)(.25*valueMax + .75*valueMin); 
    // high: valueMin + 2*(valueMax-valueMin)/4;
    int high = (int) (.5*valueMax + .5*valueMin);
    return qttElem(low, high);
  }
  
  public int qtt3Qtr() {
    int low =  (int) (.5*valueMax + .5*valueMin);
    // high:  valueMin + 3*(valueMax-valueMin)/4;
    int high = (int) (.75*valueMax +.25*valueMin);
    return qttElem(low, high);
  }

  public int qtt4Qtr() {
    int low = (int) (.75*valueMax +.25*valueMin);
    int high = valueMax;
    return qttElem(low, high);
  }

  public static void main (String[] args)
  {
    RandomGenAnalyzer rga = new RandomGenAnalyzer();
    switch ( args.length )
      {
	case  0:
	  // ja esta feito...
	  break;
	case 1:
	  rga = new RandomGenAnalyzer(Integer.parseInt(args[0]));
	  break;
	case 2:
	  rga = new RandomGenAnalyzer(Integer.parseInt(args[0]),
				      Integer.parseInt(args[1]));
	  break;
	default:
	  System.err.println("Uso: RandomGenAnalyzer [qtde_elem [valor_max]]");
	  System.exit(1);
	  break;
      } // end of switch ()
     
     rga.fill();
     System.out.println(rga.qtt1Qtr());
     System.out.println(rga.qtt2Qtr());
     System.out.println(rga.qtt3Qtr());
     System.out.println(rga.qtt4Qtr());
     System.exit(0);
  } // end of main ()
}

source code