In stratified random sampling we generally take a simple random sample of the desired size from each strata. In that case, if there are non-responses and you decide to sample additional people you would usually take a new simple random sample of the desired size from the subset of the strata that was not already sampled. You would do this for each strata.
The stratification and randomisation of the sampling are both designed to give a "representative sample" of the population, in a stochastic sense. So long as you use appropriate inference methods for your inferences about the population of interest, these sampling methods are quite good. As to algorithms for implementing simple random sampling, statistical software contains existing functions that can easily generate a simple random sample from a set of objects (e.g., see the sample
function in R
).
Of course, none of this fixes the inherent problem that non-respondents can differ systematically from respondents. Non-response in surveys is a significant source of bias in surveying work and it is inherently difficult to correct this using statistical inference methods, due to the lack of information about the non-respondent group. Consequently, most effort in surveying is directed to following up with non-respondents to see if the response rate can be increased.