#1809·evals

SchellingPoint mutates process-wide random state

Author: sylvesterkaczmarekCreated Aug 21, 2026Updated Aug 21, 2026

Describe the bug

SchellingPoint.__init__() seeds Python's module-global RNG:

python
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.