same seed, same world
Seeded noise builds a world from a seeded random number generator, so the same seed always rebuilds the same world and a save only needs to store that one number. The top strip picks each of its 64 column heights with Math.random, so it is jagged and different on every regenerate. The bottom strip sums 4 octaves of value noise from a seeded generator, so its hills are smooth, the same seed redraws them exactly over the dashed outline, and a new seed gives new hills.
Generate the world from a seeded PRNG such as mulberry32 feeding 2D Perlin or simplex noise with 3 to 5 octaves, each at double the frequency and half the amplitude of the one before, store the seed in the save file, and never call Math.random in world generation.