well, since they are generated based on manufacturing data and location, i suppose it's possible to make one yourself but i highly doubt it will work on live. you can virtually put in any data you want (like 00000000...serial # for example) and it's still gonna work, just not on live since MS has records of what eeproms were made and which one have been on live. the most popular eeproms apps (like config magic) come with blank eeprom all ready and working.
as for creating the random data inside the eeprom itself (online key, hdd key,...) they use special algorithms that take the serial # and output the different numbers using those algorithms.