replace=TRUE means sampling with replacement. The example code is drawing 10 values from the set of integers -50 through 50. If the sampling is with replacement, then each time a value is drawn, it is then placed back into the set and can be drawn again. As a result, when you draw a sample, some values could be repeated, and you could even end up with a sample where all values are the same (thought that would be extremely unlikely when making 10 draws with replacement from 101 numbers).
If we use replace=FALSE (the default for the sample function) instead, then once a value is drawn, it is removed from the set and cannot be drawn again, so each value can appear only once in the sample.
Here's an example:
set.seed(2)
# Can have repeated values
sample(1:6, 5, replace=TRUE)
#> [1] 5 6 6 1 5
# Always returns five different values
sample(1:6, 5)
#> [1] 1 4 6 5 2
If the size of the sample is larger than the set you're drawing from, then you must use replace=TRUE, otherwise the function will fail with an error.
For example:
set.seed(2)
sample(1:6, 10, replace=TRUE)
#> [1] 5 6 6 1 5 1 4 5 1 2
sample(1:6, 10)
#> Error in sample.int(length(x), size, replace, prob):
#> cannot take a sample larger than the population when 'replace = FALSE'