what happens if len(good_planes) < n_cuts ? If there is no good plane ?
I would sort the planes from good to bad and take the first n_cuts of them ?