Come gli algoritmi determinano il caso: la matematica dei generatori numerici