function rand(min, max){
  var exclude = Array.prototype.slice.call(arguments, 2).sort(function(a,b){return b-a}), 
      i = exclude.length;  
  
  max = max + 1 - min - i; 
  var result = Math.floor(Math.random()*max) + min;
  while(i--) if(result >= exclude[i]) result++;
  return result
}
rand(1, 4, 1, 2, 3) //4
Это если быть уверенным во входных данных, а так стоит добавить проверок и RangeError, на всякий случай.)