factor split and merge randomness into createSplit and createMerge