Porqué usas un random para el id??? ahí está el problema, en algún momento el id se repite y eso evita que la inserción funcione correctamente, en lugar de usar Rand de php, porqué no le asignas el atributo autoincrement al id y con eso no tienes porqué ponerlo en el php
saludos