Que la hipótesis nula sea que todas las monedas son justas. Luego podemos agrupar todas las observaciones (ya que esencialmente todas provienen de la "misma" moneda justa). Esto te dará una proporción. Desde aquí puede hacer una prueba binomial simple para verificar si esa proporción es igual a 0.5 o no.
El poder de esta prueba podría no ser tan grande dependiendo de cuán dispersa sea la señal. Fue lo primero que me vino a la mente.
> x <- c(rbinom(100, 100, 0.5), rbinom(100, 100, 0.45), rbinom(100, 100, 0.65), rbinom(100, 100, 0.3))
> binom.test(sum(x),length(x)*100)
Exact binomial test
data: sum(x) and length(x) * 100
number of successes = 19168, number of trials = 40000, p-value < 2.2e-16
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
0.4742935 0.4841095
sample estimates:
probability of success
0.4792
>
> x <- c(rbinom(100, 100, 0.5), rbinom(100, 100, 0.5), rbinom(100, 100, 0.5), rbinom(100, 100, 0.45))
> binom.test(sum(x),100*length(x))
Exact binomial test
data: sum(x) and 100 * length(x)
number of successes = 19507, number of trials = 40000, p-value = 8.426e-07
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
0.4827651 0.4925867
sample estimates:
probability of success
0.487675