question: 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 ; }
target:  Returns a random integer between [start, end]. Integers between must be divisible by the 3rd argument. 