I played the game a million times, just to see what would happen, and also because it took about 3 minutes to write the script, and it runs near instantly.
My rules are as described in the OP. You are handed the first envelope. It contains $1 or $2, but you don’t know which. The other envelope contains the complementary value. The statements on the envelopes hold true, because of the or in the statement.
Thinking about it this way, at least to me, makes it extremely obvious that across many runs the mean of the first set of envelopes equals the mean of the second set of envelopes. Staying or switching does not matter, because 1 and 2 are assigned randomly in each trial.
In this case, the gamemaster does not add any additional information to change the odds of staying or switching.
# Set number of envelope pairs
n <- 1000000
# Assign a value to the first envelope
envelopes <- data.frame(
env1 = sample(c(1, 2), n, replace = TRUE),
env2 = NA
)
# Assign the complementary value to the second envelope
envelopes$env2 <- ifelse(envelopes$env1 == 1, 2, 1)
# Result of always taking the first envelope
mean(envelopes$env1) # 1.500479
# Result of always switching
mean(envelopes$env2) # 1.499521