Вот 18-байтовый тип Go Id, который использует ту же самую случайную генерацию, что и UUID v4, без отходов и беспорядка маршалинга JSON с использованием binhex:

Многие действительно умные разработчики могут не осознавать, что UUIDv4 — это просто набор случайных байтов из вашей хост-системы, однако UUIDv4 — это в подавляющем большинстве случаев самая популярная форма UUID, с которой я сталкивался в дикой природе. Так что этот уровень случайности должен быть приемлем для большинства.

Спецификация RFC 4122 требует настройки некоторых битов для идентификации как UUIDv4, но чаще всего это никого не волнует. Мы просто хотим быть уверены, что у нас есть достаточно случайный идентификатор (что, безусловно, 2¹²⁸ возможностей). Мы реализуем String(), поэтому наш Id будет напечатан так, как и ожидалось бы от человека.