Yo me hice una funcion que te generaba precisamente esto que pides a la que le pasaba el numero de longitud con la que queria (el mismo que luego usaba, aka XLONG. La usaba para generar passwords. Sacaba la semilla de un texto hiperlargo de Lorem Impsum, a ese texto, pillaba XLONG letras aleatoriamente a las que les hacia un MD5 y guardaba en una string concatenandolas.
A la string generada, volvia a pillar aleatoriamente XLONG caracteres y las guardaba concatenandolas en string2, luego devolvia string2.
En tu caso, solo deberias añadirle la comprobacion de si ese codigo ya existe en la base de datos, si no existe, lo asocias. Si existe, vuelves a pedirle a la funcion otro id.
No se tarda mas de 10-20 min en hacer la funcion. Ahora no la tengo aquí a mano, porque no estoy en casa, pero si llego y aun no lo has solucionado te la pongo aquí. Supongo que es en PHP lo que pides, si no, pues simplemente deberas cambiar lo que sea necesario pra que funcione en tu lenguaje y ya esta.