Create a random number each second
random updates at the sub-frame level (so its value actually changes even during a frame, for example when motion blur is on. You can see this as you zoom in on the graph editor of a property with a random value, it keeps changing as it zooms and the time is sub-sampled more).

To force it to update only once a second you need to use the seedRandom function, with the timeless attribute set to true, and a seed that changes every second. Using Math.floor(time) will return a value that increases once every second, on the second.

So something like:

seedRandom(Math.floor(time), timeless = true);
random(45,55);


will create a random value that stays constant for 1 second, and 

var holdTime = 5;
seedRandom(Math.floor(time/holdTime), timeless = true);
random(45,55);


will stay constant for 5 seconds - you can change the value of the variable holdTime to control how long the value holds for. For example to change once every frame, but not during sub-frame intervals set it to holdTime = thisComp.frameDuration;