RFC4193 contains pseudo code for generation of IPv6 ULA (Unique Local Address). Do I have to follow this algorithm or is an arbitrary ULA valid?
3.2.2. Sample Code for Pseudo-Random Global ID Algorithm The algorithm described below is intended to be used for locally assigned Global IDs. In each case the resulting global ID will be used in the appropriate prefix as defined in Section 3.2. 1) Obtain the current time of day in 64-bit NTP format [NTP]. 2) Obtain an EUI-64 identifier from the system running this algorithm. If an EUI-64 does not exist, one can be created from a 48-bit MAC address as specified in [ADDARCH]. If an EUI-64 cannot be obtained or created, a suitably unique identifier, local to the node, should be used (e.g., system serial number). 3) Concatenate the time of day with the system-specific identifier in order to create a key. 4) Compute an SHA-1 digest on the key as specified in [FIPS, SHA1]; the resulting value is 160 bits. 5) Use the least significant 40 bits as the Global ID. 6) Concatenate FC00::/7, the L bit set to 1, and the 40-bit Global ID to create a Local IPv6 address prefix.
I would prefer if time was not a factor. Would it be acceptable to take the Link Local Address (Mac derived) and replace the first octet to convert it to ULA?