Why use LFSR on this context?
If it isn't important to have true randomness, an LFSR is one of the easiest ways to produce pseudorandom numbers. The output appears to have little relation to the seed value.
In this case, using that free running counter directly might appear insufficiently random, depending on how long the counter is and how fast the clock is. If a counter value of, say, 100000 gives a timer length of 1000 ms, and a counter value of 101000 gives 1010 ms, it's easy to see a relationship between the time you hit the button and the time of the delay. Running it through an LFSR for a few iterations, even if the number of iterations is fixed, serves to essentially &quot;scramble&quot; the input, so that a counter value of 100 may give a delay of 8189 ms, while a counter of 101 may give a delay of 397 ms.
With a fixed number of iterations, the LFSR could be replaced with a lookup table, but keeping the LFSR is probably more space-efficient as the LUT would have to be quite large assuming the counter has at least as many bits as the output timer.