\вариант. Присутствуют цифры, буквы Английского и Русского алфавитов обоих регистров.
for(var x, j = [], i = 0; i < 20; i++) {
x = [[48,57], [65,90], [97,122], [1040,1103]][Math.random() * 4 >> 0];
j[i] = String.fromCharCode((Math.random() * (x[1] - x[0] + 1) >> 0) + x[0]);
}
alert(j.join(""));