SchellingPoint mutates process-wide random state
Describe the bug
SchellingPoint.__init__() seeds Python's module-global RNG:
random.seed(seed)and eval_sample() later draws prompt variants with module-global random.choice().
Constructing a SchellingPoint eval therefore changes random behavior for unrelated code running in the same process. Multiple SchellingPoint instances can also interfere with each other's prompt sequence because they share the same global generator.
Expected behavior
The eval seed should control only this eval's randomness. Constructing or running SchellingPoint should not mutate Python's process-wide random state.
Proposed fix
Store a dedicated random.Random(seed) instance on the eval and use it for prompt selection. Add regression coverage verifying construction leaves global RNG state unchanged and the eval retains seeded prompt selection.
Source: openai/evals