Вы путаете две разные вещи здесь. UUID - это универсально уникальный идентификатор. У него очень высокая вероятность быть уникальным, даже если миллионы из них были созданы по всему миру одновременно. Обычно отображается в виде 36-значной строки. Вы не можете отрубить первые 8 символов и ожидать, что они будут уникальными.
Bitly, tinyurl и др. Хранят ссылки и генерируют короткий код для представления этой ссылки. Они не восстанавливают URL-адрес из кода, который они ищут в хранилище данных, и возвращают соответствующий URL-адрес. Это не UUIDS.
Не зная вашего приложения, трудно посоветовать, какой метод следует использовать, однако вы можете сохранить все, на что вы указываете, в хранилище данных с помощью числового ключа, а затем перебазировать ключ к base32, используя 10 цифр и 22 строчные буквы, возможно, избегая очевидных проблем с опечатками, таких как 'o' 'i' 'l' и т. д.
EDIT
При дальнейшем изучении доступен Ruby base32 gem , который реализует реализацию Base 32 Дугласа Крокфорда
Строка Base32 из 5 символов может представлять более 33 миллионов целых чисел, а строка из 6 цифр - более миллиарда.