Предположительно у вас есть основания полагать, что алгоритм создания Guids не производит действительно случайные числа, а фактически цикличен с периодом << 2 ^ 128.
например, метод RFC4122, используемый для получения идентификаторов GUID, который фиксирует значения некоторых битов.
Доказательство езды на велосипеде будет зависеть от возможного размера периода.
Для небольших периодов подходом может быть хеш-таблица хеш-кода (GUID) -> GUID с заменой при столкновении, если GUID не совпадают (завершаются, если они есть). Также рассмотрите возможность выполнения замены только случайную долю времени.
В конечном итоге, если максимальный период между коллизиями достаточно велик (и заранее не известен), любой метод даст только вероятность того, что коллизия будет найдена, если она существует.
Обратите внимание, что если метод генерации Guids основан на часах (см. RFC), то, возможно, не удастся определить, существуют ли коллизии, потому что (а) вы не сможете ждать достаточно долго, чтобы часы развернулись, или (b) вы не можете запросить достаточное количество гидов в течение такта, чтобы вызвать столкновение.
В качестве альтернативы вы можете показать статистическую взаимосвязь между битами в Guid или корреляцию битов между Guid. Такое отношение может сделать весьма вероятным, что алгоритм имеет недостатки, не обязательно в состоянии найти фактическое столкновение.
Конечно, если вы просто хотите доказать, что Guids может столкнуться, то вам нужно математическое доказательство, а не программа.