Lo primero que debes controlar es la fórmula matemática.
Un 20% de un 40% es 8% del total (se saca multiplicando los porcentajes y dividiendo por 100)
Un 80% de un 40% es 32% del total
Un 20% de un 60% es un 12% del total
Un 80% de un 60% es un 48% del total
Tendrías que saber el total, el XX, y aplicar los porcentajes, en tu caso con PHP, sobre ese número y cargarlos en variables. Eso lo puedes hacer fácilmente con variables PHP, que luego incluirás en los LIMIT de las consultas. Buscas que sean encontrados al azar, imagino (tendrás que usar ORDER BY RAND, aunque habría que alguna otra solución que realmente fuese más azarosa). Yo la consulta la haría con UNION ALL del siguiente modo (entiendo cun camponac. que puede ser extranjero, E, o nacional, N), aunque también podrías hacer por separado la consulta y luego reunir los datos en un array.
Esta es la idea. Los números deben cuadrar, es decir, el XX, debe permitir sacar esos porcentajes. No siempre es posible la exactitud en este tipo de datos. No podemos sacar decimales, es decir, dividir a los individuos. ¿Y qué ocurriría si de un tipo de los buscados no hay suficientes para hacer esa parte del porcentaje? Tendrías que controlar las cantidades devueltas por las consultas para ajustar o avisar.