Faça alguma contabilidade sobre as chamadas já realizadas e calcule sua distribuição nas n linhas. Isso fornece n valores percentuais (sua distribuição já alcançada), que podem ser comparados às n porcentagens que você deseja atingir. Sempre que uma nova chamada chegar, atribua-a à linha com o desvio mais alto do valor desejado (observe que, desde que você não atinja exatamente a distribuição especificada, sempre haverá uma linha com poucas ligações até o momento, quando comparado à distribuição de destino).
Por exemplo: depois de atribuir a primeira chamada à linha 1:
total calls line1 total calls line2 perc.line 1 perc. line 2
1 0 100% 0%
*above 60% *below 40% <- next call to 2
1 1 50% 50%
* below 60%: *above40% next to line1
2 1 66% 33%
*above 60% *below 40% <- next to line 2
2 2 50% 50%
* below 60%: *above40% next to line1
3 2 60% 40%
* both hit the mark: next call arbitrary
4 2 66% 33%
*above 60% *below 40% <- next to line 2
4 3 57.1% 42.85%
*below 60% *above 40% <- next to line 1
...
EDIT: Essa abordagem pode ser melhorada ainda mais se não for usada a diferença absoluta, mas escolhendo a linha que minimiza a soma dos quadrados de todos os desvios. Isso também daria um resultado melhor caso você atingisse exatamente os valores desejados.