Rasch model - Classical Test Theory
In the Rasch model, every student is given an "ability" from minus infinity to infinity, and every question is given a "difficulty", also from minus infinity to infinity.
Then, we assume that the probability that a student will get a question right when they take the test is a function of both the student's ability and the question's difficulty. Specifically, the log odds that the student gets the question right is equal to the difference between ability and the difficulty.
We simulate an entire test this way, and the results are shown. There's a histogram of the class scores along with the Kuder-Richardson 20 test for reliability and Ferguson's Delta for discrimination.
In the spreadsheet, we see the classical test theory item analysis measures - the fraction correct (AKA "item difficulty, which is different from the difficulty used in the Rasch model), the point-biserial index, which says how well that individual question predicts performance on the entire test, and the discrimination, which is how much better students with a high overall score do on a question than students with a low overall score.
Hit the "recalculate" button (and wait a couple seconds" to run the simulation again with the same parameters. To change any of the parameters, click and drag the slider bars. They won't slide super-smoothly because the simulation takes a while to update; it requires some patience.
In this simulation, student abilities are normally distributed, as are question difficulties. You can control the mean and standard deviation of each. You can also change the number of questions and number of students.