Это почти всегда ошибка, чтобы реализовать свой собственный. Маленькие уникальные номера требуют действительно надежной записи последнего использованного номера. Это трудно понять, на жестких дисках случаются сбои головок, иногда случаются повреждения реестров. Вы должны будете организовать это так, чтобы была единственная точка отказа. Аналогично автоинкрементному столбцу базы данных. Убедитесь, что в случае потери последнего номера также произошла полная потеря данных. С одной стороны, это означает, что у пользователя не должно быть способа копировать данные, не копируя также запись последнего номера. Или что у вас всегда есть надежная копия всех данных и вы можете восстановить последний номер из них. Быстро.
Вам также будет трудно убедиться, что число увеличивается атомно. Достаточно просто запустить два экземпляра вашей программы, чтобы вызвать хаос. Исправить это сложно, вам понадобится независимый арбитр, который хранит число.
Тогда есть бремя угадывать, что произойдет через 10 или 20 лет. Будет ли ваше приложение масштабироваться в соответствии с требованиями к тому времени? Это очень редко, рассчитывать на то, что машины становятся быстрее, с этим покончено. То, что местному уникальному номеру теперь нужно, становится глобально уникальным номером. Очень различные требования к этому.
Не облажайся, 16 байтов - ничто. Используйте Guid.