Basicamente, eles não são possíveis! , as chances são astronomicamente baixas .
Mas ... eu sou a única pessoa do mundo que conheço que teve uma colisão GUID uma vez (sim!).
E tenho certeza disso, e que não foi um erro.
Como isso aconteceu, em um aplicativo pequeno que estava sendo executado no Pocket PC, no final de uma operação, um comando que possui um GUID gerado deve ser emitido. O comando após a execução no servidor foi armazenado em uma tabela de comandos no servidor junto com a data de execução. Um dia, quando eu estava depurando, emiti o comando module (com o GUID recém-gerado anexado) e nada aconteceu. Fiz isso novamente (com o mesmo guia, porque o guia foi gerado apenas uma vez no início da operação) e, novamente, e nada, finalmente tentando descobrir por que o comando não está sendo executado, verifiquei a tabela de comandos, e o mesmo GUID que o atual foi inserido há 3 semanas. Não acreditando nisso, restaurei um banco de dados a partir de 2 semanas de backup e o guia estava lá. Verificado o código, o novo guia foi gerado recentemente, sem dúvida.
Edit: existem alguns fatores que podem ter aumentado muito a chance de isso acontecer, o aplicativo estava sendo executado no emulador PocketPC e o emulador possui um recurso de salvar estado, o que significa que toda vez que o estado é restaurado, a hora local também é restaurada e o guid é baseado no timer interno .... também o algoritmo de geração de guid para estrutura compacta pode ser menos completo do que, por exemplo, o COM ...