Yo te recomiendo lo siguiente:
Paso 1: Utiliza un algoritmo de transcripción, podría ser el de luhn el cual se utiliza actualmente para obtener números de tarjetas VISA y MASTERCARD válidos.
Después de que hayas buscado en google...
Imagina que tu numero de transcripción será de la siguiente forma
A B C D E
Donde E será el número transcrito. (Te recomiendo que estos números sea todos enteros y de un dígito)
Genera aleatoriamente todos los numeros A,B,C,D (un dígito) y despues has las operaciones de transcripción para obtener el número transcrito
Por ejemplo:
Cita: (A*4 + B*3 + C*2 + D)%10 = E
Donde E es el número transcrito.
Paso 2
Genera el resto de los números de manera aleatoria con un rango de (0 a 9)
# = Numero aleatorio
Paso 3: Construye tu cadena, por ejemplo
#A#B#C#D#E
Tienes ya los 10 dígitos que quieres Por último:
Una forma de verificar que este número sea único, es habiendo guardado todos los que has obtenido en una DB, con una simple consulta lo sabrás. Si el número ya existe en la DB pues generas otro y ya está.