// Generate a random 4-bit hex digit randHexDigit = function n = floor(rnd * 16) hex = "0123456789abcdef" return hex[n] end function // Generate a random 4-character hex block randHexBlock = function(len) s = "" for i in range(0, len - 1) s = s + randHexDigit() end for return s end function // Entry point generateUUIDv4 = function part1 = randHexBlock(8) part2 = randHexBlock(4) part3 = "4" + randHexBlock(3) // UUID version 4 part4 = randHexDigit() part4 = "89ab"[floor(rnd*4)] + randHexBlock(3) // variant bits part5 = randHexBlock(12) return part1 + "-" + part2 + "-" + part3 + "-" + part4 + "-" + part5 end function