I don't know enough to answer the second part of your request. But i think i found a solution to the first part.
So there is no proper solution to your problem. A roundabout way to do it is to use
/words.json/search/{query}.
For the parameters of the query: minCorpusCount = 1maxCorpusCount = -1minDictionaryCount = 1maxDictionaryCount = -1minLength = 1
maxLength = -1limit = 1
skip = 0
Now lets say your query (alphabet) is "r", the api call returns an object:
{
"totalResults": 10916,
"searchResults": [
{
"lexicality": 0,
"count": 0,
"word": "r"
},
{
"lexicality": 0,
"count": 7507178,
"word": "right"
}
]
}
If you observe the very first field of the json response, there 10000 words approximately starting with r.
To get a random word starting from "r" , use the "skip" field. Skip a random number of results to get a random word.
Its not the perfect solution, buts its a roundabout way to achieve it.