protected int randomIntBetweenDivisible(int start,int end,int divisible){
  int divisStart=(int)Math.ceil((start + 1) / (double)divisible);
  int divisEnd=(int)Math.floor((end - 1) / (double)divisible);
  int divisRange=Math.max(0,divisEnd - divisStart + 1);
  int r=randomInt(1 + divisRange);
  if (r == 0)   return start;
  if (r == 1)   return end;
  return (r - 2 + divisStart) * divisible;
}

protected int randomIntBetweenDivisible ( int start , int end , int divisible ) { int divisStart = ( int ) Math . ceil ( ( start + 1 ) / ( double ) divisible ) ; int divisEnd = ( int ) Math . floor ( ( end - 1 ) / ( double ) divisible ) ; int divisRange = Math . max ( 0 , divisEnd - divisStart + 1 ) ; int r = randomInt ( 1 + divisRange ) ; if ( r == 0 ) return start ; if ( r == 1 ) return end ; return ( r - 2 + divisStart ) * divisible ; }
returns a random integer between [ start , end ] . integers between must be divisible by the 3rd argument .
