This does not answer the question. But assuming that Cosmo's belief is accurate, this algorithm (written in t-SQL) can determine which coins are which.
DECLARE @coins TABLE(cID NVARCHAR(1), cSeed DECIMAL(8,8), cRank INT, cWeight DECIMAL(2,1), cStatus NVARCHAR(4))
INSERT INTO @coins (cID, cSeed, cStatus) SELECT 'A', RAND(), 'UNKN'
INSERT INTO @coins (cID, cSeed, cStatus) SELECT 'B', RAND(), 'UNKN'
INSERT INTO @coins (cID, cSeed, cStatus) SELECT 'C', RAND(), 'UNKN'
INSERT INTO @coins (cID, cSeed, cStatus) SELECT 'D', RAND(), 'UNKN'
;WITH r
AS (
SELECT *, RANK() OVER (ORDER BY cSeed DESC) rRank
FROM @coins
)
UPDATE r
SET cRank = rRank
UPDATE @coins
SET cWeight = 0.9 WHERE cRank > 2
UPDATE @coins
SET cWeight = 1 WHERE cRank < 3
IF (SELECT cWeight FROM @coins WHERE cID = 'A') > (SELECT cWeight FROM @coins WHERE cID = 'B')
BEGIN
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'A'
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'B'
IF (SELECT cWeight FROM @coins WHERE cID = 'A') > (SELECT cWeight FROM @coins WHERE cID = 'C')
BEGIN
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'C'
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'D'
END
ELSE
BEGIN
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'C'
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'D'
END
END
ELSE IF (SELECT cWeight FROM @coins WHERE cID = 'A') = (SELECT cWeight FROM @coins WHERE cID = 'B')
BEGIN
IF (SELECT cWeight FROM @coins WHERE cID = 'A') > (SELECT cWeight FROM @coins WHERE cID = 'C')
BEGIN
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'A'
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'B'
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'C'
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'D'
END
ELSE
BEGIN
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'A'
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'B'
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'C'
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'D'
END
END
ELSE
BEGIN
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'A'
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'B'
IF (SELECT cWeight FROM @coins WHERE cID = 'B') > (SELECT cWeight FROM @coins WHERE cID = 'C')
BEGIN
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'C'
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'D'
END
ELSE
BEGIN
UPDATE @coins SET cStatus = 'REAL' WHERE cID = 'C'
UPDATE @coins SET cStatus = 'FAKE' WHERE cID = 'D'
END
END
SELECT * FROM @coins