1. Si el rango de los números aleatorios no es muy grande, puedes utilizar un array de booleanos del tamaño del rango de números, a medida que vaya saliendo un número n, comparas si la posición n del array está en true, entonces pones en false esa posición y utilizas n.
2. Introduces en una lista los números y haces aleatorio el apuntador como si se tratase de una ruleta, a medida que un número salga, lo retiras de la lista. Esta forma es más eficiente, pero no se si Javascript maneja listas, sino te toca implementarlas.