added random sampling option

@robertzk please review. I've tested it and it should work
Add a `%||% FALSE` so that it does not break old models if this option isn't present.