I have created elliptic curve VRF for TON: https://github.com/ProgramCrafter/ecvrf-coordinator-contract.
Its coordinator contract in testnet is kQAkRQPZL7siQjoc26FFXRGgb/r/ZzmdP4P+anwZfcwvkWkh
, accepting messages from users according to the following TL-B:
op::subscribe_random#AB4C4859 consumer:MsgAddressInt = InMsgBody;
op::provide_random#069CECA8 rnd:u256 = OutMsgBody;
Script calculating the random values and sending them to blockchain is private but it's not needed for validating that they are indeed unpredictable and deterministically based on challenge.