How to Randomly Generate SAT Scores in R with max and min? I'm trying to figure out how to randomly generate SAT scores in R by subsection. It follows the general form rnorm(n,mean,SD), but I also need to take into account that the minimum value has to be 200 with a max value of 800. Also scores go in increments of 10 (e.g., 200, 210, 220, etc.). 
So I can't simply use rnorm(10000,500,100) --> 10,000 scores generated, mean score of 500, standard deviation of 100.
Under this format I don't get scores in increments of 10 and can occasionally see scores outside of the [200,800] range.
Thanks for any insight.
 A: First, the minimum on the SAT is 0, not 200. 200 is what you get to start with, but there is a penalty for wrong answers.
To generate this:
install.packages("truncnorm")
library(truncnorm)
set.seed(123)

sat <- round(rtruncnorm(n = 10000, a = 0, b = 800, mean = 500,
                  sd = 100),-1)

A: Are you trying to do a homework assignment per specified rules, or are you just trying to figure out how to generate random scores by whatever method is most appropriate?   If you're just trying to do homework, I'll just  you give you some hints in the last paragraph.
If you're trying to do it by the most appropriate method, then start with the actual empirical distribution, for instance, based on https://secure-media.collegeboard.org/digitalServices/pdf/sat/sat-percentile-ranks-composite-crit-reading-math-writing-2014.pdf , or equivalent for other breakdowns. Then sample from the empirical distribution.  For individual sections of SAT, I found https://secure-media.collegeboard.org/digitalServices/pdf/sat/sat-percentile-ranks-crit-reading-math-writing-2014.pdf , but that only lists percentiles in 1% increments - I'll leave it to you to find a better source for break down per section of SAT.
The approach in the above paragraph makes no assumption about the distribution being a truncated Normal as perhaps a homework problem is expecting.  If you were to take that route, you'd also have to discretize the truncated Normal in a way similar to how you would approximate a Binomial by a Normal, only in reverse.  So something along the lines of 205 to 215 raw would get discretized to 210, etc.  If you are an enterprising sort, you could check how well a discretized truncated Normal matches the empirical distribution. A simple way to generate from a truncated Normal distribution is by Acceptance/Rejection method. If a generated point is within the non-truncated region, accept it, otherwise reject it (throw it out), and try again.  This works because the probability density of the non-truncated region winds up being increased (adjusted) by (just) enough that the adjusted density integrates to 1 over the non-truncated region. The R function rtruncnorm in Peter Flom's answer does this for you, and the round with digits = -1 does the discretization.  However his claim that 0 is the minimum score seems to be contradicted by the links I provided.
A: sat <- rnorm(1000, mean = 50, sd = 10)
sat <- trunc(sat)
sat <- sat * 10
sat[sat < 200] <- 200
sat[sat > 800] <- 800


> head(sat)
[1] 390 460 770 510 360 480
> min(sat)
[1] 200
> max(sat)
[1] 790

