pois é... não precisa nem seguir minha mesma lógica de raciocínio, pode seguir qualquer outra... Eu fiz desse jeito porque achei que seria o único jeito de se fazer, mas acabou se tornando complicado demais... o que pensei em fazer, é ao gerar a matriz, fazer um esquema para que as cidades que tivessem valor abaixo de 1, as vezes aparecesse, as vezes não... mas, uma cidade com 0,9% de chance na verdade poderia ter menor chance de aparecer que uma com 0,00001% E claro, os dados que coloquei foram só um exemplo... imagina essa tabela com cerca de 50mil cidades, claro, filtrada teria ao menos 500... imagina que no mínimo 400 dessas teria um valor menos que 1%... e aí... quebraram-se minhas pernas... =) Aí que está mesmo meu problema... Fazer por eliminação? Também não seria consistente o resultado... O que eu poderia fazer é tentar convencer a direção do projeto aqui a filtrar para menos de 20 cidades cada vez que precisasse fazer isso... mas acho difícil fazerem isso...