actually generate random IDs when requested