For every BP type e.g. BP_Road I need it to have an ID which I want to be a random 6 digit number that will never be used again.
Well the easiest way to generate a 6-digit number from a random stream would be to either call RandRange with a range between 100,000 and 999,999, or to generate a number between 0 and 999,999 and then pad the front with 0s as needed, depending on whether or not “000123” is a valid 6-digit ID or not.
What do you need these IDs for, though? Unreal kinda-sorta does this already. Is this some kind of metadata you want to attach to each individual BP asset in your game’s content browser?