вариант отлова на скорую руку
<script language="JavaScript" type="text/javascript">
function usefloor(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
var m = [],
s = [],
t = [];
var l = 10; //длина массива
var min = 0;
var max = 20;
//создание массива m с неуникальными элементами
for (var i = 0; i < l; i++) {
m[i] = usefloor(min, max)
}
var test="<br>" + m;
//создание массива t из оставшихся элементов на случай замены
for (var i = 0; i <= (max - min); i++) {
s[i] = 1;
}
for (var i = 0; i < l; i++) {
s[m[i]] = 0;
}
for (var i = 0; i < s.length; i++) {
if (s[i] == 1) t.push(i)
}
test+="<br>" + t;
//проверка m на уникальность и замена повторяющихся элементов
for (var i = 0; i < l; i++) {
for (var k = i + 1; k < l; k++) {
if (m[k] == m[i]) {
n = usefloor(0, (t.length - 1));
m[k] = "<font color='#FF0000'>" + t[n] + "</font>";
t.splice(n, 1);
}
}
}
document.write(test+"<br>" + m);
</script>