Allowing students to practice on random variations of problems in an assignment