Non so se sia "pulito" ...
codice:
 <script>
 var ammiss = new Array(1,2,3,4,5);
 var max = 2;
 function valida(arr) {
	if (arr.length>max) return false;
	
	rv = true; // valore di ritorno
	nv = 0; // numero di valori passati ammissibili
	for (var i=0; i<arr.length; i++) {
		for (var j=0; j<ammiss.length; j++) { // verifico che sia un valore ammissibile
			if (arr[i]==ammiss[j]) nv++;
		}
		for (var j=i+1; j<arr.length; j++) { // verifico doppioni
			if (arr[i]==arr[j]) rv=false;
		}
	}
	return (rv && (nv==arr.length));
 }

 alert("1"+" "+valida([1])); // ok
 alert("1,2"+" "+valida([1,2])); // ok
 alert("1,2,3"+" "+valida([1,2,3])); // no
 alert("1,1"+" "+valida([1,1])); // no
 alert("6,7"+" "+valida([6,7])); // no
 alert("1,6"+" "+valida([1,6])); // no
 </script>
ciao