В принципе это невозможно! , шансы астрономически низкие .
Но ... Я единственный человек в мире, о котором я знаю, у которого однажды была коллизия GUID (да!).
И я уверен в этом, и что это не было ошибкой.
Как это произошло, в небольшом приложении, работающем на Pocket PC, в конце операции должна быть выдана команда, имеющая сгенерированный GUID. Команда после того, как она была выполнена на сервере, была сохранена в таблице команд на сервере вместе с датой выполнения. Однажды, когда я занимался отладкой, я выдал команду модуля (с прикрепленным вновь созданным GUID), и ничего не произошло. Я сделал это снова (с тем же guid, потому что guid был сгенерирован только один раз в начале операции), и снова, и ничего, наконец, пытаясь выяснить, почему команда не выполняется, я проверил таблицу команд, и тот же GUID, что и текущий, был вставлен 3 недели назад. Не веря этому, я восстановил базу данных из двухнедельной резервной копии, и руководство было там. Проверил код, новый guid был свежесгенерирован без сомнений.
Изменить: есть некоторые факторы, которые могли значительно увеличить вероятность этого, приложение работало на эмуляторе PocketPC, а в эмуляторе есть функция сохранения состояния, что означает, что каждый раз, когда состояние восстанавливается, также восстанавливается местное время и guid основан на внутреннем таймере .... также алгоритм генерации guid для компактной структуры может быть менее полным, чем, например, COM ...