How did Mohan Srivastava crack Ontario scratchcards? Wired ran a 2011 article about how a statistician, Mohan Srivastava, cracked Ontario scratchcards such as this one.
First, he thought about the program that produced the numbers on the cards.

'Of course, it would be really nice if the computer could just spit out
  random digits. But that’s not possible, since the lottery corporation
  needs to control the number of winning tickets. The game can’t be truly
  random. Instead, it has to generate the illusion of randomness while
  actually being carefully determined.'

He realised that if a card had a certain feature, it was likely profitable.

Srivastava was looking for singletons, numbers that appear only a single
  time on the visible tic-tac-toe boards. He realized that the singletons
  were almost always repeated under the latex coating. If three singletons
  appeared in a row on one of the eight boards, that ticket was probably a
  winner.

How might a program that produced the numbers work?
And how did Srivastava infer that consecutive singletons would be predictive of winning cards?
 A: PROBLEMS WITH AN INSTANT SCRATCH LOTTERY GAME: An analysis of why the OLGC’s TicTacToe game was exploitable helps to answer these questions.
http://www.math.leidenuniv.nl/~gill/Jul2003_Report_on_TicTacToe.pdf 
How might a program that produced the numbers work?
The report explains:

  
*
  
*For each card, decide if it is going to be a winner or a loser.
  
*If it’s going to be a winner, lay down a pattern of X’s and O’s that has the desired
  alignment of X’s in exactly the correct position. This is easy to do since there are only a
  few hundred possible arrangments of X’s and O’s; these can be calculated beforehand,
  stored and then searched for an arrangement that has the X’s in a certain location.
  
*If it’s going to be a loser, lay down a pattern of X’s and O’s that has no winning
  alignment in the X’s. As with setting up a winning card with its X’s in exactly
  the right position, ensuring that there are no winning alignments is a simple task of
  searching through a precalculated data base of all possible arrangments and selecting
  from one of the many that have no winning alignments.
  
*Having fixed the location of the X’s and the O’s, the remaining tasks are to choose 24
  numbers for the scratch list, assign the X locations numbers from this list and assign
  the O locations numbers that do not appear on the list.
  

And how did Srivastava infer that consecutive singletons would be predictive of winning cards?
Nothing I could find answers this question, but I assume he came up with the same method of generating the cards, then realized the problem with it.  
The report states:

The heart of the problem, therefore, is that there are far more numbers on the scratch 
    list than off it (a result, in part, of someone’s decision that the choices should go 
    from 1 to 39), but the number of cells that need to be populated with numbers from each 
    group is roughly equal. The consequence of this is that the number of repetitions of a 
    particular number on the eight playing boards ends up providing clues to whether or not 
    that number is on the scratch list.

