It mostly depends on how you decide what entries must be starred. I assume that you can decide via a substring of the key.
\begin{filecontents*}{\jobname.bib}
@article{gander2001,
author={Gladstone Gander},
title={How to be lucky},
journal={Nature},
pages={1-33},
volume={42},
year={2001},
}
@article{ducks2002,
author={Donald Duck and Fethry Duck},
title={How to be unlucky},
journal={Nature},
pages={34-44},
volume={43},
year={2002},
}
@book{scrooge1901,
author={Scrooge McDuck},
title={My first golden nugget in {Klondike}},
publisher={Yukon Press},
address={Whitehorse},
year={1901},
}
@book{scrooge1990,
author={Scrooge McDuck},
title={How to manage zillion of dollars},
publisher={McDuck Press},
address={Duckburg},
year={1990},
}
\end{filecontents*}
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\setspeciallist}{ m }
{
\seq_gset_split:Nnn \g_mmakster_special_list_seq { , } { #1 }
}
\cs_set_eq:Nc \mmakster_original_bibitem:n { @bibitem }
\seq_new:N \g_mmakster_special_list_seq
\bool_new:N \l_mmakster_star_bool
\cs_set_protected:cpn { @bibitem } #1
{
\bool_set_false:N \l_mmakster_star_bool
\seq_map_inline:Nn \g_mmakster_special_list_seq
{
\tl_if_in:nnT { #1 } { ##1 }
{ \bool_set_true:N \l_mmakster_star_bool \seq_map_break: }
}
\mmakster_original_bibitem:n { #1 }
}
\cs_set_protected:cpn { @biblabel } #1
{
\bool_if:NT \l_mmakster_star_bool { \leavevmode\llap{*} }[#1]
}
\ExplSyntaxOff
\setspeciallist{gander,duck}
\begin{document}
\nocite{*}
\bibliographystyle{unsrt}
\bibliography{\jobname}
\end{document}
With this the two entries "Gander" and "Duck and Duck" have a key that has one of the strings in \setspeciallist as substring, so they will be starred.
