code: func randomBitSet(size int, cardinality int, rnd *rand.Rand) []bool {
  	result := make([]bool, size)
  	chosen := make([]int, cardinality)
  	var i int
  	for i = 0; i < cardinality; i++ {
  		chosen[i] = i
  		result[i] = true
  	}
  	for ; i < size; i++ {
  		j := rnd.Intn(i + 1)
  		if j < cardinality {
  			result[chosen[j]] = false
  			result[i] = true
  			chosen[j] = i
  		}
  	}
  	return result
  }
docs: /**
   * Reservoir sampling algorithm borrowed from Stack Overflow.
   *
   * http://stackoverflow.com/questions/12817946/generate-a-random-bitset-with-n-1s
   */